Unity 控制物体旋转、朝向的一些方法

Unity 控制物体旋转、朝向的一些方法

1,transform. Lookat( )

transform.Lookat(target.position);

立即看向target的位置, 很生硬.

2,Quaternion.LookRotation( )

transform.rotation = transform.LookRotation(target.position - self.position);

也是,立即看向target的位置。

3,Quaternion.RotateTowards( )

Quaternion q = Quaternion.LookRotation(target.position - self.position);
Quaternion.RotateTowards(self.rotation, q, turnSpeed * Time.deltaTime);

匀速转向target的位置。(比较生硬)

4,Quaternion.Slerp( )

Quaternion q = Quaternion.LookRotation(target.position - self.position);
Quaternion.Slerp(self.rotation, q, turnSpeed * Time.deltaTime);

非匀速转向target的位置。(人物运动看起来比较合理)

5,transform.Rotate ( )

transform.rotate(Vector3.up, Space.Self);

地球自转。

6,transform.RotateAround( )

transform.rotateAround(Sun.position, Vector3.up, turnSpeed * Time.deltaTime);

绕太阳公转。

7, transform.DORotate()

transform.DORotate(new Vector3(0,60,0), 0.3f);

0.3秒转到(0,60,0);Rotation
DOTween的, 注意他的参数是个三元数, 要是想与另一个物体的朝向一致, 就:

transform.DORotate(other.transform.eulerAngles, 0.3f);

8, transform.DOLookAt()

还是DOTween的, 和transform.LookAt差不多, 就是多个时间, 能达到lerp的效果

你可能感兴趣的:(Unity)