Unity开发——随笔1.0:关于LookAt()转向生硬解决办法

背景:研究鱼群算法,鱼类转向问题。

首先:鱼要面对食物,此时LookAt()完美解决面向问题
问题:LookAt()会直接锁定目标,导致转向生硬。

解决过程:
(1).给物体赋予刚体,取消重力(创建组件也可以,代码我习惯些)

gameObject.AddComponent<Rigidbody>().useGravity = false;

(2).获得刚体

rb = GetComponent<Rigidbody>();

(3).以下变量:velocity是在我的代码中设置的转变后方向和速度,TurnSpeed是可以设置的角速度,Acceleration是可以设置的加速度。

 rb.velocity = Vector3.RotateTowards(rb.velocity, Velocity, TurnSpeed,Acceleration);

(4).将物体和刚体的方向调整一致。

transform.rotation = Quaternion.LookRotation(rb.velocity);

你可能感兴趣的:(Unity开发,unity3d)