Unity中移动方法总结(主要是平滑移动)

游戏制作过程中控制物体移动是很常见的功能  但是有时候在用的时候总不能很快的用到合适的方法,现在总结下所有的移动方法(这里的运动都是指平滑运动不包含瞬间移动

移动物体分为两种方式:1.非物理移动(没有力速度等因素)只需要改变物体的位置Position即可   3.物理运动,这个时候就需要使用Unity中的物理系统

运动方式:1.朝一个方向运动2.向着目标点移动(一般是鼠标点击点)3.由A点到B点(运动方式2的特殊化)

朝一个方向上运动

     非物理运动:

         1.在Update中对Transform.position中的x,y.z值自加   例如Transform.position.x+=0.1f    0.1f被称为步长

     物理运动:

        1.Rigidbody组件中的方法: a.Rigidbody.AddForce()方法在某一个方向上施加    力的效果    b.Rigidbody.velocity给物体一个移动速度    c.CharacterController中的方法,由于CharacterController中继承部分的Rigidbody属性,也可以控制物体移动,主要用于制作第一,三人称射击运动  

向目标点移动

    非物理运动

    1.Transform.Translate 例子:Transform.Translate(Vector3.zero*Time.deltaTime)以一米每秒的速度向(0,0,0)点运动

    2.Vector3.lerp  Vector.Slerp,Vector3.MoveTowards插值

Vector3.lerp(transform.position,targetposition,Time.deltaTime)    Slerp主要用于角度弧度的插值运算    MoveTowards在Lerp基础上增加了限制最大速度    

   3. Vector3.SmoothDamp

      该方法是可以平滑的从A逐渐移动到B点,并且可以控制速度,最常见的用法是相机跟随目标。

    物理运动:

     Righdbody中的Rigidbody.MovePosition方法用于实现向目标点移动   

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值