I have a problem with NPC grounding… cant seem to make them stay on the ground at the moment.
The guy Jeremy Boggs, he is floating above the ground. The code for the NPC waypoint walking is below.
var waypoint : Transform[];
var speed : float = 1.5;
private var currentWaypoint : int = 0;
var loop : boolean = true;
var player : Transform;
private var character : CharacterController;
function Start ()
{
character = GetComponent(CharacterController);
}
function Update ()
{
if(currentWaypoint < waypoint.length)
{
var target : Vector3 = waypoint[currentWaypoint].position;
target.y = transform.position.y; // keep waypoint at character's height
var moveDirection : Vector3 = target - transform.position;
if(moveDirection.magnitude < 1)
{
transform.position = target; // force character to waypoint position
currentWaypoint++;
}
else
{
transform.LookAt(target);
transform.rotation.x = 0;
transform.rotation.z = 0;
character.Move(moveDirection.normalized * speed * Time.deltaTime);
}
}
else
{
if(loop)
{
currentWaypoint=0;
}
}
}
how can I make the NPC stick to the ground no matter what the terrain is. He seems to just float at a certain y axis and if he hits any collider he bumps up higher but never falls back to the ground.
What am I missing or doing wrong?
Thanks in advance,
Roman