两个可用的transform.Rotate方法重载之间的实际差异是什么?
一个版本使用浮点数作为参数,而另一个版本使用看起来使用相同参数的Vector3。
两者之间是否有首选/最佳做法/表现更佳?文档并没有真正说出这种或那种方式。
transform.Rotate (new Vector3(0, Input.GetAxis("Mouse X") * sensitivityHor, 0));
transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityHor, 0);
答案 0 :(得分:2)
他们是一样的。我建议选择使代码最容易阅读的那个:如果你有一个可以使用的矢量(例如角速度),使用该矢量;如果每个轴都有一个浮点数(例如鼠标移动),请使用接受三个浮点数的浮点数。当你回到试图解决一些错误的代码时,这将是你最可读的问题。
答案 1 :(得分:0)
两种旋转方法几乎相同但又非常不同:
方法
public void Rotate(float xAngle, float yAngle, float zAngle);
接受三个角度'并沿提供的角度方向旋转物体。
相反方法
public void Rotate(Vector3 axis, float angle);
采用定义旋转轴的矢量和定义角度的浮点数(要旋转多少?)。例如,如果您将axis
设置为new Vector3(0f, 0f, 1f);
并将angle
设置为15f
,则旋转方法将仅沿z轴将对象旋转15度。此旋转方法仅检查axis
参数中的哪个轴的值大于0,并仅围绕该轴旋转对象。