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);
}