第一,使用transform的translate进行移动。
使用方法:对象.transform.translate(方向向量*normalized * Time.deltaTime * speed);
normalized是将这个方向向量归一化,即模长等于1,这是为了控制速度等于后面的speed,如果不加也能够实现移动,但是速度不便于控制。Time.deltaTime是每一帧的时间,speed是你定义的速度,假设为10f,这样你就可以朝着这个方向以10f每秒的速度进行移动。
可以实现的效果如下:
<iframe allowfullscreen="true" data-mediaembed="csdn" frameborder="0" id="IwDUW4vH-1727533723336" src="https://live.csdn.net/v/embed/427372"></iframe>transform.translate的移动
这个就是运用了transform.translate的方式进行实现的,不过其中还加入了贝塞尔曲线进行实现,所以会自动的平滑的移动,采用了路径点法的思想,后续会介绍贝塞尔曲线和路径点法。
这里面就是将贝塞尔曲线上面的点储存在了一个数组里面,然后根据点的坐标减去自己的坐标,形成一个向量,normalized进行归一化,然后每到达下一个点就index++,即拿出下一个点,每一个点的距离够短,所以有平滑的感觉。
第二,使用rigidbody的moveposition进行移动。
使用方法:先获取某个对象的rigidbody组件,命名为rb,rb.moveposition(position),对象会平滑的移动到position这个位置上,建议搭配unity自带的输入系统使用。
<iframe allowfullscreen="true" data-mediaembed="csdn" frameborder="0" id="LdzaFWEU-1727533734555" src="https://live.csdn.net/v/embed/427373"></iframe>rigidbody.moveposition的移动
这个视频中人物的移动就是运用了刚体(rigidbody)的moveposition的移动方式,也能够很平滑的进行移动。
这样就能够实现平滑的移动,关于unity自带的操作系统,详细可以去看一看unity里面的官方文档,能有更好的理解。
以上的两种方式都是较为简单并且比较常用的移动方式,当然还有很多移动的方式,后续会添加进来。
标签:rigidbody,translate,moveposition,transform,易上,unity,移动 From: https://blog.csdn.net/dailinhan123/article/details/142622295