Hey,
Maybe someone can help me out.
hope i can explain this correctly.
I’ve got a waypoint script attached to my model with 3 waypoints set up. When the model is moving to the waypoints it is playing animation “Walk” and when it reached the waypoint it stays there for a few seconds and plays the animation “Pondering”, but what i actually want is that it doesnt play animation “pondering” at every waypoint only at waypoint 3 so basically i want the model to walk through waypoint 1 and 2 and then at waypoint 3 play “pondering”.
How could i do this?
I’m a bit lost at the moment.
Thanks in advance.
This is the script so far:
var waypoint : Transform;
var speed : float = 0.5;
var currentWaypoint : int;
var loop = true;
var test;
function Update () {
animation.wrapMode = WrapMode.Loop;
if(currentWaypoint < waypoint.length){
var target : Vector3 = waypoint[currentWaypoint].position;
var moveDirection : Vector3 = target - transform.position;
var velocity = rigidbody.velocity;
if(moveDirection.magnitude <= 0.2){
test = true;
print("magniute");
animation.CrossFade("pondering");
speed = 0;
if(test){
WaitThreeSeconds();
currentWaypoint++;
}
}
else{
if(!test){
animation.CrossFade("walk");
speed = Random.Range(0.5,0.5);
RotateTowards();
}
}
}
velocity = moveDirection.normalized * speed;
rigidbody.velocity = velocity;
}
function RotateTowards () {
var target : Vector3 = waypoint[currentWaypoint].position;
var moveDirection : Vector3 = target - transform.position;
while(Vector3.Distance(target, transform.position) >= 1.5){
transform.rotation = Quaternion.Slerp (transform.rotation, Quaternion.LookRotation(moveDirection), 1.5* Time.deltaTime);
transform.eulerAngles = new Vector3(0, transform.eulerAngles.y, 0);
yield;
}
}
function WaitThreeSeconds(){
yield WaitForSeconds(2.6);
test = false;
}