I have a problem with the translation, MoveTowards work normally with transform but When I try to use it through translate I’ve got many errors like following error:
transform.position assign attempt for 'SecondCpu' is not valid. Input position is { Infinity, -4461021470593428500000.000000, -4463786117814680600000.000000 }.
UnityEngine.Transform:Translate(Single, Single, Single)
My Code:
var MoveDir : Vector3;
MoveDir = Vector3.MoveTowards(mainObject.position, AIObject[0].position, avgSpeed);
mainObject.Translate(MoveDir * Time.deltaTime);
var MoveDir : Vector3;
MoveDir = Vector3.MoveTowards(mainObject.position, AIObject[0].position, avgSpeed);
transform.Translate(MoveDir * Time.deltaTime);
OK it works this way but I don’t get what you are trying to do. Both MoveTowards and Translate have a similar effect.
Also when doing this, the object keeps on going so I guess you cannot really do anything like this.
This is the code I used:
var MoveDir : Vector3;
var target: Transform;
var speed=0.001f;
function Update(){
MoveDir = Vector3.MoveTowards(transform.position, target.position, speed);
Debug.Log(MoveDir);
transform.Translate(MoveDir * Time.deltaTime);
}
And all it does is going towards the target, passes it and keeps on going and going faster and faster despite the 0,001.