首页 > 解决方案 > What is difference between Transform Rotate and forward Rotate?

问题描述

I want rotated 'transform.forward' with not rotate transform.

but have problem result of 'rot * tf.forward'

I have to make a lot of rotate transform.forward.

I know transform.Rotate is high cost.

Why are those different?

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");
}

标签: c#unity3d

解决方案


tf.forward 不会向前旋转你的游戏对象。tf.forward 是一个相对于你的游戏对象的向量点。

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


推荐阅读