方法1:Translate
this.transform.Translate( Vector3.normalize( 目标位置 - 自身位置 ) * ( Vecotr3.Distance( 自身位置, 目标位置 ) / ( 所用时间 * Time.deltime )));
方法2:Vector3.Lerp差值
public Transform pointStart;
public Transform pointEnd;
public float time;
private float distance;
private float moveSpeed;
private float startTime;
private float friction;
void Start()
{
distance = Vector3.Distance( pointStart.position, pointEnd.position );
moveSpeed = distance / time;
startTime = ( Time.time - startTime ) * moveSpeed / distance;
}
void Awake()
{
friction = ( Time.time - startTime ) * moveSpeed / distance;
transform.position = Vector3.Lerp( pointStart.position, pointEnd.position, friction );
}