網頁

2018年7月18日 星期三

如何抓到Camera 的 transform.rotation 在X,Y,Z軸的值

在Unity裏頭的rotation,是一個相當複雜的概念。
直覺來說,我們會想說在X軸上看旋轉個幾度,Y軸上看旋轉個幾度,Z軸上看旋轉個幾度。
但實際上似乎又無法這樣設定。

以下有個特別的方式,既可以保持變數型態是 Quaternion,又可以從我們直覺的方式來做旋轉角度的設定。



//先宣告一個Quaternion,變數名稱是quate,變數型態是Quaternion
//Quaternion.identity 代表 在三個軸度上的角度為(0,0,0)
  Quaternion quate = Quaternion.identity;

// 用eulerAngles對三個軸度的角度做修改         
quate.eulerAngles = new Vector3(0, Camera.main.transform.rotation.eulerAngles.y+180, 0);

//然後再把quate賦予給Gameobject:
transform.rotation = quate;

其實重點就是:
// roll = Camera.main.transform.rotation.eulerAngles.z;
// pitch = Camera.main.transform.rotation.eulerAngles.x;
// yaw = Camera.main.transform.rotation.eulerAngles.y;

很神奇的是,用eulerAngles 改過角度後,
丟回給transform.rotation,變數型態上也是match。

也許以後可以試著用這個直覺的方式來修改rotation的角度。

沒有留言:

張貼留言