博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
摄像机旋转约束问题及解决
阅读量:7210 次
发布时间:2019-06-29

本文共 1022 字,大约阅读时间需要 3 分钟。

 

去年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;    }}
View Code

 

转载地址:http://lrrum.baihongyu.com/

你可能感兴趣的文章
commit your changes or stash them before you can merge
查看>>
Linux Shell执行原理
查看>>
DATA GUARD架构(一)
查看>>
MapReduce1和Yarn的工作机制
查看>>
awk 以列为域提取文件内容
查看>>
NEC中标里斯本智慧城市项目 助力城市整体数字化变革
查看>>
[转] 大规模服务设计部署经验谈
查看>>
Debian手动修改ip地址
查看>>
Realm的简单使用
查看>>
zabbix使用zabbix 数据库做数据分表
查看>>
Oracle 11g dataguard三种模式以及实时查询(Real-time query)功能设置
查看>>
exchange 2013 lesson 6 CAS HA installing
查看>>
Groovy中的闭包
查看>>
Alibaba Cloud Launches Dual-mode SSD to Optimize Hyper-scale Infrastructure Performance
查看>>
数字签名和数字证书详解
查看>>
用来代替SQUID的软件VARNISH
查看>>
每天学一点Scala之 伴生类和伴生对象
查看>>
http反向代理调度算法追朔
查看>>
做门户网站 个人站长的新好出路
查看>>
sql中exists,not exists的用法
查看>>