Unity腳本-Rotate旋轉相關知識點


1,Transform旋轉

  transform.Rotate(X, Y, Z);//分別繞X,Y,Z軸旋轉,可寫為繞某個軸旋轉,栗子transform.Rotate(0, 90, 0);
  transform.Rotate(Vector3.right * Time.deltaTime);//以歐拉角旋轉,順序是ZXY,right是向X軸旋轉1度
  transform.Rotate(0, 45, 0, Space.World);//繞世界坐標系的XYZ軸旋轉,也就是其頂層父物體的坐標系,如果自身在頂層則沒有區別,並不是繞點旋轉,而是不按照自身的坐標系旋轉
  transform.Rotate(Vector3.up, Space.Self);//繞自身坐標系旋轉,這是默認的
  transform.RotateAround(Vector3.zero, Vector3.up, 20 * Time.deltaTime);//繞點旋轉,旋轉軸,角度
  transform.rotation = Quaternion.identity;//旋轉可由四元數直接指定
transform.eulerAngles = new Vector3(angle);//由歐拉角直接指定
自動旋轉:
在update中旋轉並配合Time.deltaTime即可
 
2.Quaternion四元數
從以上可以看出我們既可以按角-軸旋轉也可以根據向量計算出要旋轉的角度
 
平滑旋轉:
transform.rotation = Quaternion.Slerp (from : Quaternion, to : Quaternion,Time.fixedTime* smooth);
Lerp插值比Slerp更快但是如果旋轉較遠看起來就比較差。
 
注視旋轉:
Quaternion LookRotation(Vector3 forward, Vector3 upwards);
創建一個旋轉,沿着forward(z軸)並且頭部沿着upwards(y軸)的約束注視。 也就是建立一個旋轉,使z軸朝向forward,y軸朝向up。
所得的結果是 以forward為目標朝向時的旋轉角,用於控制角色旋轉很有用
 
3,剛體旋轉
rigidbody.MoveRotation (rot : Quaternion)
對於運動學剛體,它基於剛體的運動應用摩擦力。模擬剛體的旋轉。
如果你想其他的剛體與運動學剛體交互,你需要在FixedUpdate函數中使用它。

4,注視
transform.LookAt (target : Transform, worldUp : Vector3 = Vector3.up) 
旋轉物體使z軸(forward)指向目標物體。
當該物體設置了LookAt並指定了目標物體時,該物體的z軸將始終指向目標物體,在設置了worldUp軸向時,該物體在更接近指定的軸向是旋轉便的靈活,注意worldUp指的是世界空間,不論你物體在什么位置,只要接近指定的軸方向,旋轉會變的更靈活。
5,DoTween旋轉
transform.DoLocalRotate();
transform.DoRotate();//函數記不大清楚了,應該就這兩個,不清楚的可以在查下
unity中旋轉rotation默認是以四元數存儲的,按我們的習慣是歐拉角,通常需要將歐拉角轉為四元數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM