首页 > 代码库 > 摄像机旋转约束问题及解决
摄像机旋转约束问题及解决
去年2月份写过一个旋转约束的解决方法,不过是硬算的,今天无意中在论坛发现了一个解决方法
if (euler.x > 180) euler.x -= 360; if (euler.x < -180) euler.x += 360;
这样就可以保证旋转区间可比较
具体代码如下:
using System.Collections; using System.Collections.Generic; using UnityEngine; public class TestCamera : MonoBehaviour { public Transform target; public Vector2 xLimit; public Vector2 yLimit; public Vector2 zLimit; void LateUpdate() { transform.LookAt(target); var euler = FixEuler(transform.eulerAngles); euler.x = Mathf.Clamp(euler.x, xLimit.x, xLimit.y); euler.y = Mathf.Clamp(euler.y, yLimit.x, yLimit.y); euler.z = Mathf.Clamp(euler.z, zLimit.x, zLimit.y); transform.eulerAngles = euler; } Vector3 FixEuler(Vector3 euler) { if (euler.x > 180) euler.x -= 360; if (euler.x < -180) euler.x += 360; if (euler.y > 180) euler.y -= 360; if (euler.y < -180) euler.y += 360; if (euler.z > 180) euler.z -= 360; if (euler.z < -180) euler.z += 360; return euler; } }
摄像机旋转约束问题及解决
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。