How can I stop on a point NPC character?

hi, I am writing a npc code. how can I stop at a certain point? thanks…

WAYPOINT CODE:

var lastPos: Vector3;

function OnDrawGizmos () {

var waypoints = gameObject.GetComponentInChildren(Transform);

for (var waypoint : Transform in waypoints ){

Gizmos.color = Color.red;
Gizmos.DrawSphere(waypoint.position,.5);

Gizmos.color = Color.yellow;
Gizmos.DrawLine(waypoint.position,lastPos);
lastPos = waypoint.position;

}

}

NPC CODE:

var spawnPoints : Transform;
var targetPoint : Transform;
private var waypoint = new Array ();
private var distance : float;
private var counter : int = 0;


function Start () {

  var i = 0;

  for (var child : Transform in spawnPoints){
  waypoint[i] = child;
  i++;
  
  }
}

function Update () {
  
  distance = Vector3.Distance(transform.position,waypoint[counter].position);
  
  var relativePos = waypoint[counter].position - transform.position;
  var rotation = Quaternion.LookRotation(relativePos);
  transform.rotation = Quaternion.Slerp(transform.rotation,rotation,Time.deltaTime * 2);
  
  transform.Translate(Vector3.forward/10);
  
 
if(distance<=1){

  counter++;
 
  }

if(distance){

   animation.CrossFade("walk");
   
   }

if(counter>=waypoint.length){

  counter=0;
 
  }

}

if(distance > 1)
{
transform.Translate(Vector3.forward/10);
}
else
{
counter++;
}

thanks… but that’s not … :frowning:

I want to character stop when it comes to 3rd point. How can I do? :face_with_spiral_eyes:

Your code needs to know what the target point is.

When your code sees that your NPC is close to the target point, then, instead of moving the NPC, don’t move the NPC.

distance = Vector3.Distance(transform.position, waypoint[currentWaypoint];
if(currentWaypoint < waypoint.Length)
{
if(distance > 1)
{
transform.Translate(Vector3.forward/10);
}

else
{
counter++;
}
}

Sorry if formatting is weird.

sorry…I forgot to delete this code:

var targetPoint : Transform;

this code invalid… :wink:

my code knowledge of bad… please help more understandable…