簡體   English   中英

在X和Z GLOBAL軸上旋轉對象

[英]Rotate an Object on X and Z GLOBAL axis

我有以下情況:

我的場景中有一個圓柱,並且有兩個Dropdowns。 通過下拉菜單,我可以選擇X軸和Z軸的旋轉角度為0或90度。 此旋轉始終必須在全局軸上,以便用戶了解正在發生的事情。

當我在X軸上將對象旋轉90度時,一切正常。 當我嘗試將其在Z軸上附加旋轉90度時,對象正在繞Y軸而不是Z軸旋轉。

我試圖直接設置transform.rotation,transform.Rotate和transform.RotateAround,但是沒有任何效果。

我要做的第一件事就是始終將旋轉度重置為0。

Object.transform.rotation = Quaternion.identity;

我對Eulers的嘗試:

Object.transform.rotation = Quaternion.Euler(new Vector3(xRot, 0, zRot));

我的四元數嘗試:

Object.transform.rotation = Quaternion.AngleAxis(xRot * 90, Vector3.right) * Quaternion.AngleAxis(zRot * 90, Vector3.forward);

我的旋轉嘗試:

Object.transform.Rotate(new Vector3(xRot, 0, zRot), Space.World);

我的預期結果是,無論當前旋轉的對象是什么,該對象始終繞GLOBAL X / Z軸旋轉。 但是我的嘗試都沒有導致預期的行為。

您可以使用此:

gameObject.transform.localEulerAngles = new Vector3(xRot, 0, zRot);

或對於全局軸:

gameObject.transform.eulerAngles = new Vector3(xRot, 0, zRot);

暫無
暫無

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

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