I’ve tried several solutions, and while most of them didn’t work at all, some of them did, but because it was in the update function and the object was still moving the animation would repeat before it ended. Here are some of my attempts:
function Update () {
if (rigidbody.velocity.magnitude == 0){
animation.Play("Idle 1");
}
else if (rigidbody.velocity.magnitude >= 1) {
animation.Play("Fly 1");
}
}
function Update () {
curPos = transform.Position;
lastpos = position;
if(curPos == lastPos) {
print("Not moving");
target.animation.Play("Idle 1");
}
else {
target.animation.Play("Fly 1");
}
lastPos = curPos;
}
var lastPosition : Vector3;
var myTransform : Transform;
var isMoving : boolean;
function Start()
{
myTransform = transform;
lastPosition = myTransform.position;
isMoving = false;
}
function Update()
{
var target = GameObject.FindGameObjectWithTag("Player");
if ( myTransform.position != lastPosition ){
isMoving = true;
}
else {
isMoving = false;
lastPosition = myTransform.position;
}
if (isMoving == true){
target.animation.Play("Fly 1");
}
else {
target.animation.Play("Idle 1");
}
}
Its pretty confusing and none of these really worked, so any help would be greatly appreciated, thanks.