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方法用于实现向目标点移动   

 

 

你可能感兴趣的:(Unity中移动方法总结(主要是平滑移动))