Unity EulerAngles欧拉角X轴问题

项目中遇到需要获取和Inspector中一样的角度信息

使用Transform.localEulerAngles时,Y和Z都没问题,但X轴在90°->270°的角度增加过程中会产生90°->0°->360°->270°的变化过程,有点手足无措,想了半天,应该是没有参考导致的,于是硬想了个山寨方法出来,应该有更高效和简便的方法来获取,如果你有,请不惜赐教,谢谢~!!

using UnityEngine;

public class Test : MonoBehaviour

{

    private void Update()

{

     Vector3 refUp = Vector3.up;

     float resX = transform.localEulerAngles.x;

     if(transform.parent)

          refUp = transform.parent.up;

     if(Vector3.Dot(transform.up, refUp) < 0)

     { if(resX < 180) resX = 180 - resX; else resX = 540 - resX; } }

     Debug.Log(resX);

}

你可能感兴趣的:(Unity EulerAngles欧拉角X轴问题)