我在學Unity,我有一個問題。Unity旋轉和四元數
我不明白爲什麼這條線將旋轉重置爲0,0,0。我正在做的是重新分配它的歐拉值?
transform.rotation =
Quaternion.Euler(transform.rotation.x,
transform.rotation.y,
transform.rotation.z);
我這樣做的原因是因爲我需要鎖定一個軸並保持其他軸的更改。所以我想在X軸和Z軸的變化後,我可以做這樣發生的:
transform.rotation = Quaternion.Euler(transform.rotation.x,
LOCKED ROTATION VALUE,
transform.rotation.z);
我敢肯定它的簡單,但我不能找出什麼是錯。
在此先感謝。
你不能把'transform.rotation'的值放到'Quaternion.Euler'中。這不會做你的想法。 'transform.rotation'返回一個四元數和四元數是複數,而不是浮點數。例如。 y軸上的180度旋轉將是'w = 0,x = 0,y = 1,z = 0'的四元數。 –
**不要**因爲任何原因使用四元數。你可能看到他們在網上提到,這是令人困惑的。要在Unity中旋轉對象,請使用「旋轉」。在許多情況下,你也可以使用「eulerAngles」。請享用! – Fattie
@JoeBlow完全不同意,請重新檢查使用四元數的優點,以及它們如何比您提出的更好,只有當您正確理解問題時,我敢打賭你纔會改變主意。關於他們的gamasutra有很好的文章。 – Vilo