Unity绕x轴旋转并限制角度的陷阱

版权声明:转载请保留该链接 https://blog.csdn.net/u013826918/article/details/85872272

在这里插入图片描述

在制作FPS相机时,遇到了需要限制角度的需求,视角只能查看到-60到60度的范围,而在Unity的Transform组件中,绕x轴逆时针旋转,Transform组件的localEulerAngle会在0~360范围内递增(如图)
关键在于其中的角度转换,直接上代码

        public static void RotateClampX(this Transform t, float degree, float min, float max)
        {
            degree = (t.localEulerAngles.x - degree);
            if (degree > 180f)
            {
                degree -= 360f;
            }

            degree = Mathf.Clamp(degree, min, max);
            t.localEulerAngles = t.localEulerAngles.SetX(degree);
        }

参考了这位老兄的文章并稍微简化了一下
https://blog.csdn.net/qq_15386973/article/details/76255694

猜你喜欢

转载自blog.csdn.net/u013826918/article/details/85872272