1.物體的直接旋轉
transform.Rotate();這個函數是在當前狀態下網某個方向旋轉。並且這里可以設置為世界空間或者自身空間。
transform.rotation;這里可以通過直接定義一個quaternion變量然后賦值。
2.協同旋轉
首先定義父親物體以z軸為軸心旋轉,子物體以自身空間的x軸旋轉,並且兩者的旋轉角度數要一致,或者有某種函數關系。此時如果用rotate會因為要使用deltaTime導致相當麻煩,所以這里用歐拉角構建quaterni變量賦值rotation。但是如果用quaternion會發現父親物體和子物體的旋轉會發生錯誤,因為子物體除了自身旋轉還要應用父親物體的旋轉,所以為子物體構建由rotation01之后,用父親物體的rotation02取乘以rotation01,即rotation=rotation02*rotation01,結果rotation才是子物體正確的rotation。注意這里的乘以順序不能顛倒,不同的去看一百遍線性代數。
3.旋轉的角度值問題
獲取的歐拉角的值實在0到360度之間。vector3獲得的兩個向量的有符號角度是-180到180。inspector顯示的角度值如果代碼或者場景控制物體旋轉,顯示的時0到180,但是手動控制可以是任何值。