在指定时间内从初始位置移动到最终位置
float distance = Vector3.Distance(begin, end);
transform.position = Vector3.Lerp(begin, end, Time.time*(distance/time)/distance );
在指定时间内从初始位置到达最终位置,到达后继续进行往返运动
float pingPong = Mathf.PingPong(Time.time, time);
float p = Mathf.InverseLerp(0, time, pingPong);
transform.position = Vector3.Lerp(begin, end, p);
void Move(GameObject gameObject, Vector3 begin, Vector3 end, float time, bool pingpong)
{
gameObject.transform.position = begin;
if (pingpong == false)
{
float distance = Vector3.Distance(begin, end);
transform.position = Vector3.Lerp(begin, end, Time.time*(distance/time)/distance );
}
if (pingpong == true)
{
float pingPong = Mathf.PingPong(Time.time, time);
float p = Mathf.InverseLerp(0, time, pingPong);
transform.position = Vector3.Lerp(begin, end, p);
}
}