transform.Rotate 方法有什么区别?

What is the difference between transform.Rotate methods?

2 个可用的 transform.Rotate 方法重载之间的实际区别是什么?

一个版本使用浮点数作为其参数,而另一个版本使用 Vector3,看起来使用相同的参数。

两者之间有preferred/bestpractice/better执行选项吗?该文档并没有真正说明一种方式。

transform.Rotate (new Vector3(0, Input.GetAxis("Mouse X") * sensitivityHor, 0));
transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityHor, 0);

两种旋转方法几乎相同但有很大不同:

方法

public void Rotate(float xAngle, float yAngle, float zAngle);

接受三个 'Angles' 并按照提供的角度旋转对象。

相反的方法

public void Rotate(Vector3 axis, float angle);

接受一个定义旋转轴的向量和一个定义角度的浮点数(你想旋转多少?)。例如,如果将 axis 设置为 new Vector3(0f, 0f, 1f); 并将 angle 设置为 15f,旋转方法将仅沿 z 轴将对象旋转 15 度。此旋转方法将仅检查 axis 参数中哪个轴的值大于 0,并仅围绕该轴旋转对象。

他们是一样的。我建议选择使代码最容易阅读的那个:如果你有一个可以使用的向量(例如 angular velocity),就使用那个向量;如果每个轴都有一个浮点数(例如鼠标移动),请使用接受三个浮点数的那个。当您返回该代码试图修复一些错误时,这对您来说是最易读的问题。