iT邦幫忙

3

Unity 取得物件旋轉位置

想取得現在物體的旋轉位置,上網查蠻多人用transform.rotation.x
可是印出來的數值很奇怪

data 是額外的變數

this.gameObject.transform.rotation= Quaternion.Euler (data-180f, 0f, 0f); 

    print(this.gameObject.transform.rotation.x);

執行畫面結果如下
https://ithelp.ithome.com.tw/upload/images/20180607/201099808jL4At9pAf.jpg

想藉由抓現在 X 旋轉的角度
來判斷(希望能達成0~180度時旋轉,其他角度不變)

希望大家能幫幫忙~~~~~謝謝大家

ShawnGood iT邦新手 5 級 ‧ 2019-02-23 12:44:24 檢舉
this.gameObject.transform.rotation取出來的是四元數
所以this.gameObject.transform.rotation.x並不是尤拉角的繞x軸旋轉角度喔
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
JamesDoge
iT邦高手 1 級 ‧ 2023-02-03 08:06:23

試試transform.eulerAngles.x

僅供參考:

float angle = this.gameObject.transform.eulerAngles.x;
if (angle > 180f)
{
    angle -= 360f;
}

if (angle < 0f)
{
    angle = 0f;
}
else if (angle > 180f)
{
    angle = 180f;
}

this.gameObject.transform.eulerAngles = new Vector3(angle, 0f, 0f);

我要發表回答

立即登入回答