簡體   English   中英

transform.Rotate方法之間有什么區別?

[英]What is the difference between transform.Rotate methods?

這兩個可用的transform.Rotate方法重載之間的實際區別是什么?

一個版本的參數使用浮點數,而另一個版本的Vector3似乎使用相同的參數。

兩者之間是否有首選/最佳實踐/更好的選擇? 該文檔並沒有真正說出一種方法。

transform.Rotate (new Vector3(0, Input.GetAxis("Mouse X") * sensitivityHor, 0));
transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityHor, 0);

他們是一樣的。 我建議選擇一個使代碼最容易閱讀的代碼:如果您有一個可以使用的向量(例如角速度),請使用該向量; 如果每個軸都有一個浮點(例如,鼠標移動),請使用可容納三個浮點的軸。 回到您嘗試修復某些錯誤的代碼時,這對您來說最具可讀性。

兩種旋轉方法幾乎相同,但有很大不同:

方法

public void Rotate(float xAngle, float yAngle, float zAngle);

接受三個“角度”,並沿提供的角度方向旋轉對象。

相反的方法

public void Rotate(Vector3 axis, float angle);

采用定義旋轉軸的向量和定義角度(要旋轉多少角度)的浮點數。 例如,如果將axis設置為new Vector3(0f, 0f, 1f); 並將angle設置為15f ,旋轉方法將僅沿z軸將對象旋轉15度。 此旋轉方法將僅檢查axis參數中的哪個軸的值大於0,並僅繞該軸旋轉對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM