簡體   English   中英

Unity對象未圍繞正確的軸旋轉

[英]Unity object not rotating around correct axis

因此,我正在編寫一個腳本,該腳本能夠使用鼠標移動來旋轉對象。 我設置的場景是一個照相機,前面有一個物體。 向左移動鼠標會導致對象向左旋轉,向上移動鼠標會導致對象向上旋轉,依此類推。現在,我有一個小問題。 當我將對象向左或向右旋轉90度,然后向上或向下旋轉時,它繞Z軸而不是X軸旋轉,就像我想要的那樣。 發生這種情況的原因是,當向左或向右旋轉時,路線的Z和X軸隨我之前操縱的Y軸一起旋轉。

我制作了兩個展示問題的GIF:

這是我當前正在使用的代碼:

public float object_rotSens = 100.0f;
float object_rotY = 0.0f;
float object_rotX = 0.0f;    

void Update()
{
object_rotX += Input.GetAxis("Mouse X") * object_rotSens * Time.deltaTime;
object_rotY += Input.GetAxis("Mouse Y") * object_rotSens * Time.deltaTime;
objectImRotating.transform.localEulerAngles = new Vector3(object_rotY, -object_rotX, 0);
}

我希望有人可以幫助我更改代碼,這樣即使對象繞Y軸旋轉了任意角度,我也可以進行首選旋轉。 提前致謝!

更新:

克里斯·H(Chris H)幫助我解決了問題。 對於有相同問題的任何人,以下是幫助我解決問題的方法:

object_rotX = Input.GetAxis("Mouse X") * object_rotSens * Time.deltaTime;
object_rotY = Input.GetAxis("Mouse Y") * object_rotSens * Time.deltaTime;
objectImRotating.transform.RotateAround(objectImRotating.transform.position, new Vector3(object_rotY, -object_rotX, 0), 100 * Time.deltaTime);

嘗試使用Transform.RotateAround而不是localEulerAngles。

暫無
暫無

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

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