Skip to main content
Simplified code and made code more consistent
Source Link
Vaillancourt
  • 16.4k
  • 17
  • 56
  • 61

This is an update to a script found here: http://forum.unity3d.com/threads/groundnpc.181705/#post-1241872here:

This is a simple fix that prevents NPCs from walking through sloped mesh.

#pragma strict

var gravity = 20.0;
var verticalSpeed= 0.0;
private var collisionFlags : CollisionFlags;  // The last collision flags returned from controller.Move
 
function Update() 
{   
    ApplyGravity();
 
    // Calculate actual motion
    var movement = Vector3 (0, verticalSpeed, 0) + Vector3.zero;
    movement *= Time.deltaTime;
   
    // Move the controller
    var controller : CharacterController = GetComponent.<CharacterController>();
    collisionFlags = controller.Move(movement);
}

function ApplyGravity()
{
    verticalSpeed = IsGrounded() ? 0.0 : verticalSpeed - gravity * Time.deltaTime
}

function IsGrounded()
{
    var controller : CharacterController = GetComponent.<CharacterController>();
    return (controller.collisionFlags == CollisionFlags.Below);
}

 
#pragma strict

var gravity = 20.0;
var verticalSpeed= 0.0;
private var collisionFlags : CollisionFlags;  // The last collision flags returned from 
                                              // controller.Move
 
function Update() 
{   
    ApplyGravity();
 
    // Calculate actual motion
    var movement = Vector3 (0, verticalSpeed, 0) + Vector3.zero;
    movement *= Time.deltaTime;
   
    // Move the controller
    var controller : CharacterController = GetComponent.<CharacterController>();
    collisionFlags = controller.Move(movement);
}

function ApplyGravity()
{
    verticalSpeed = IsGrounded() ? 0.0 : verticalSpeed - gravity * Time.deltaTime
}

function IsGrounded()
{
    var controller : CharacterController = GetComponent.<CharacterController>();
    return (controller.collisionFlags == CollisionFlags.Below);
}

This is an update to a script found here: http://forum.unity3d.com/threads/groundnpc.181705/#post-1241872

This is a simple fix that prevents NPCs from walking through sloped mesh.

#pragma strict

var gravity = 20.0;
var verticalSpeed= 0.0;
private var collisionFlags : CollisionFlags;  // The last collision flags returned from controller.Move
 
function Update() 
{   
    ApplyGravity();
 
    // Calculate actual motion
    var movement = Vector3 (0, verticalSpeed, 0) + Vector3.zero;
    movement *= Time.deltaTime;
   
    // Move the controller
    var controller : CharacterController = GetComponent.<CharacterController>();
    collisionFlags = controller.Move(movement);
}

function ApplyGravity()
{
    verticalSpeed = IsGrounded() ? 0.0 : verticalSpeed - gravity * Time.deltaTime
}

function IsGrounded()
{
    var controller : CharacterController = GetComponent.<CharacterController>();
    return (controller.collisionFlags == CollisionFlags.Below);
}

 

This is an update to a script found here:

This is a simple fix that prevents NPCs from walking through sloped mesh.

#pragma strict

var gravity = 20.0;
var verticalSpeed= 0.0;
private var collisionFlags : CollisionFlags;  // The last collision flags returned from 
                                              // controller.Move
 
function Update() 
{   
    ApplyGravity();
 
    // Calculate actual motion
    var movement = Vector3 (0, verticalSpeed, 0) + Vector3.zero;
    movement *= Time.deltaTime;
   
    // Move the controller
    var controller : CharacterController = GetComponent.<CharacterController>();
    collisionFlags = controller.Move(movement);
}

function ApplyGravity()
{
    verticalSpeed = IsGrounded() ? 0.0 : verticalSpeed - gravity * Time.deltaTime
}

function IsGrounded()
{
    var controller : CharacterController = GetComponent.<CharacterController>();
    return (controller.collisionFlags == CollisionFlags.Below);
}

This is an update to a script found here: http://forum.unity3d.com/threads/groundnpc.181705/#post-1241872

This is a simple fix that prevents NPCs from walking through sloped mesh.

#pragma strict

var gravity = 20.0;
var verticalSpeed= 0.0;
private var collisionFlags : CollisionFlags;  // The last collision flags returned from controller.Move
 
function Update() {
{   
    ApplyGravity ();
 
    // Calculate actual motion
    var movement = Vector3 (0, verticalSpeed, 0) + Vector3.zero;
    movement *= Time.deltaTime;
   
    // Move the controller
    var controller : CharacterController = GetComponent.<CharacterController>();
    collisionFlags = controller.Move(movement);
}

function ApplyGravity ()
{
       verticalSpeed if= (IsGrounded ())
            verticalSpeed =? 0.0;
        else
          0 : verticalSpeed -= gravity * Time.deltaTime;deltaTime
}

function IsGrounded ()
{
    var controller : CharacterController = GetComponent.<CharacterController>();
 
    return (controller.collisionFlags == CollisionFlags.Below);
}

This is an update to a script found here: http://forum.unity3d.com/threads/groundnpc.181705/#post-1241872

This is a simple fix that prevents NPCs from walking through sloped mesh.

#pragma strict

var gravity = 20.0;
var verticalSpeed= 0.0;
private var collisionFlags : CollisionFlags;  // The last collision flags returned from controller.Move
 
function Update() {
   
    ApplyGravity ();
 
    // Calculate actual motion
    var movement = Vector3 (0, verticalSpeed, 0) + Vector3.zero;
    movement *= Time.deltaTime;
   
    // Move the controller
    var controller : CharacterController = GetComponent.<CharacterController>();
    collisionFlags = controller.Move(movement);
}

function ApplyGravity ()
{
        if (IsGrounded ())
            verticalSpeed = 0.0;
        else
            verticalSpeed -= gravity * Time.deltaTime;
}

function IsGrounded ()
{
    var controller : CharacterController = GetComponent.<CharacterController>();
 
    return (controller.collisionFlags == CollisionFlags.Below);
}

This is an update to a script found here: http://forum.unity3d.com/threads/groundnpc.181705/#post-1241872

This is a simple fix that prevents NPCs from walking through sloped mesh.

#pragma strict

var gravity = 20.0;
var verticalSpeed= 0.0;
private var collisionFlags : CollisionFlags;  // The last collision flags returned from controller.Move
 
function Update() 
{   
    ApplyGravity();
 
    // Calculate actual motion
    var movement = Vector3 (0, verticalSpeed, 0) + Vector3.zero;
    movement *= Time.deltaTime;
   
    // Move the controller
    var controller : CharacterController = GetComponent.<CharacterController>();
    collisionFlags = controller.Move(movement);
}

function ApplyGravity()
{
    verticalSpeed = IsGrounded() ? 0.0 : verticalSpeed - gravity * Time.deltaTime
}

function IsGrounded()
{
    var controller : CharacterController = GetComponent.<CharacterController>();
    return (controller.collisionFlags == CollisionFlags.Below);
}

Source Link
junji
  • 63
  • 2
  • 8

This is an update to a script found here: http://forum.unity3d.com/threads/groundnpc.181705/#post-1241872

This is a simple fix that prevents NPCs from walking through sloped mesh.

#pragma strict

var gravity = 20.0;
var verticalSpeed= 0.0;
private var collisionFlags : CollisionFlags;  // The last collision flags returned from controller.Move
 
function Update() {
   
    ApplyGravity ();
 
    // Calculate actual motion
    var movement = Vector3 (0, verticalSpeed, 0) + Vector3.zero;
    movement *= Time.deltaTime;
   
    // Move the controller
    var controller : CharacterController = GetComponent.<CharacterController>();
    collisionFlags = controller.Move(movement);
}

function ApplyGravity ()
{
        if (IsGrounded ())
            verticalSpeed = 0.0;
        else
            verticalSpeed -= gravity * Time.deltaTime;
}

function IsGrounded ()
{
    var controller : CharacterController = GetComponent.<CharacterController>();

    return (controller.collisionFlags == CollisionFlags.Below);
}