U3D中,常见的移动方法:
1.从a点移动到b点:
①Vector3.MoveToward方法
a.transform.position = Vector3.MoveTowards(a.transform.position, b.transform.position, Time.deltaTime * speed);
(Time.deltaTime*speed,时间×速度=每帧移动的距离)
②transfrom.translate方法
瞬间移动(闪现):transform.Translate(b.transform.position - a.transfrom.position);
有过程的移动,有两种:
I 匀速移动,原理同MoveToward:
transfrom.Translate((b.transform.position-a.transform.position).normalized * Time.detalTime * speed);
(向量归一化,用Time.detalTime*speed来表示每帧移动的距离)
II 先快后慢,主要因为a向量-b向量,在a移动过程中会不断变小:
transform.Translate((a.transfrom.posiiton-b.transfrom.position) * Time.detalTime *toslow);
((a.transfrom.posiiton-b.transfrom.position) * Time.detalTime代表每帧移动的距离,假如你的机器一秒运行60帧,那么Time.detalTime = 1/60,也就是说,用这个公式,在机器稳定运行的情况下,1s内一定会从a到b。因此后面乘了一个toslow,例如将toslow取0.1、0.01、0.2之类的值,就能让它慢下来,且遵循运动先快后慢的规律,记住