变换旋转和正向旋转之间有什么区别?

时间:2019-05-14 10:04:46

标签: c# unity3d

我要旋转“ transform.forward”而不旋转变换。

但出现“ rot * tf.forward”问题的结果

我必须做很多旋转变换。

我知道变换。旋转成本很高。

为什么这些不同?

Transform tf = transform;
Quaternion rot = Quaternion.Euler(90f, 0f, 0f);

Vector3 eulerRot1 = rot * tf.forward * Mathf.Rad2Deg;
tf.roration *= rot;
Vector3 eulerRot2 = tf.forward * Mathf.Rad2Deg;

if(eulerRot1 == eulerRot2)
{
    Debug.Log("Same");
}
else
{
   Debug.Log("Not same");
}

1 个答案:

答案 0 :(得分:1)

tf.forward不会将游戏对象向前旋转。 tf.forward是相对于您的游戏对象向前的矢量点。

transform.Rotate成本不高,直接通过它的转换移动游戏对象从不昂贵。用它的物理组件来移动它是昂贵的