ONE
使用Unity自带的方法Vector3.MoveTowards()
float speed = 5;
gameObject.transform.localPosition = Vector3.MoveTowards(gameObject.transform.localPosition, new Vector3(10,10, 50), speed * Time.deltaTime);
说明:使当前物体移动到点(10,10,50)
这里有个Time.deltaTime怎么理解(⊙o⊙)???
Update()的刷新是按照每帧来显示的,但是Time.deltaTime是按照秒来统计的。
大神文章:http://blog.csdn.net/yexudengzhidao/article/details/52814561
Two
使用插值运算
float speed = 5;
float step = speed * Time.deltaTime;
gameObject.transform.localPosition =new Vector3(Mathf.Lerp(gameObject.transform.localPosition.x, 10, step),Mathf.Lerp(gameObject.transform.localPosition.y, 10, step),Mathf.Lerp(gameObject.transform.localPosition.z, 50, step));
说明:使当前物体移动到(10,10,50)
Mathf Lerp 的含义就是,从某一个值,到某一个值的过渡,根据这个百分比,我们就可以得到一个 进度值。可以是逐渐增大的&#