Unity旋转角度范围限制

2023-11-08

因为Unity中在做旋转的时候是用四元数或者矩阵,有时候跟Transform组件面板显示的数值不一致,另外我们所有旋转角度常规数值其实是在-360—360度区间,所以我们判断一下,另外对于旋转角度范围予以限制:

public float ClampAngle(float angle, float min, float max)
    {
        if (angle < -360)
        {
            angle += 360;
        }

        if (angle > 360)
        {
            angle -= 360;
        }
        return Mathf.Clamp(angle, min, max);
    }

获取轴向控制物体旋转:

 if (Input.GetKey(KeyCode.UpArrow))
    {
        paoGuanAngleX -= Time.deltaTime * 10F;
    }
    else if (Input.GetKey(KeyCode.DownArrow))
    {
        paoGuanAngleX += Time.deltaTime * 10F;
    }
    paoGuanAngleX = ClampAngle(paoGuanAngleX, minRotX, maxRotX);
    Quaternion quaternion = Quaternion.Euler(paoGuanAngleX, 0, 0);
    paoGuan.transform.localRotation = quaternion;

完整代码:

public paoGuan;                                    //旋转目标
public float minRotX=-20.0f,maxRotX=3.0f;          //限制角度区间范围
private float paoGuanAngleX;

 void Start()
{
    paoGuanAngleX = paoGuan.localEulerAngles.x;   //旋转的是局部坐标
    paoGuanAngleX = -5.0f;                        //物体X轴初始角度
}

void LateUpdate()                                 //这里也可以改获取轴向控制
{
   if (Input.GetKey(KeyCode.UpArrow))
   {
       paoGuanAngleX -= Time.deltaTime * 10F;
   }
   else if (Input.GetKey(KeyCode.DownArrow))
   {
       paoGuanAngleX += Time.deltaTime * 10F;
   }
   paoGuanAngleX = ClampAngle(paoGuanAngleX, minRotX, maxRotX);
   Quaternion quaternion = Quaternion.Euler(paoGuanAngleX, 0, 0);
   paoGuan.transform.localRotation = quaternion;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity旋转角度范围限制 的相关文章

  • Unity Animator 动画没切换

    恶魔射手 Survival Shooter 项目 有两个动画 一个是静止时的Idle 一个是走路时候的Move 如下图 设置好动画状态机后发现按方向键后还是Idle 没反应 而一直按着方向键后呢又动起来了 最后找到了真相 原来选中了 Has
  • 蒙特卡洛积分、重要性采样、低差异序列

    渲染公式 渲染的目标在于计算周围环境的光线有多少从表面像素点反射到相机视口中 要计算总的反射光 每个入射方向的贡献 必须将他们在半球上相加 为入射光线 与法线 的夹角 为方便计算可以使用法线向量和入射向量 单位化 的乘积表示 对于基于图像的
  • visual studio:是否统一换行符 提示弹窗是否显示

    工具 选项 环境 文档 加载时检查一致的行尾
  • Input.GetAxis _ Unity3d

    Input GetAxis 获取轴 static function GetAxis axisName string float Description描述 Returns the value of the virtual axis iden
  • unity网络资源导入

    1 找到需要导入的文件 这里导入fbx格式 2 打开unity界面 在Asset目录下创建文件夹FBX 将需要导入的fbx预制体或整个文件夹拖入创建的FBX文件夹下 3 选中需要的fbx预制体并拖至场景中 4 双击定位到当前物体 5 找到需
  • 1.17 从0开始学习Unity游戏开发--场景切换

    前面的所有文章我们都在一个固定的游戏场景内进行开发 在最开始介绍场景这个概念的时候就已经提及 这个场景可以是一张地图 或者是一个对战房间等等 所以显然这个场景可以有多个 并且可以从一个场景切换到另外一个场景 那么在Unity中如何进行场景切
  • c#获取cpu序列号

  • Unity中级客户端开发工程师的进阶之路

    上期UWA技能成长系统之 Unity高级客户端开发工程师的进阶之路 得到了很多Unity开发者的肯定 通过系统的学习 可以掌握游戏性能瓶颈定位的方法和常见的CPU GPU 内存相关的性能优化方法 UWA技能成长系统是UWA根据学员的职业发展
  • Unity 粒子特效、材质发光 HDR ShaderGraph图文教程[完成lit发光设置]

    效果如图 准备工作 在hdr模式下 关闭Directional Light 相机设置 移动球挂一个点光源作为子节点 设置自行调节 0 创建移动球的材质及shader shader gt 在Project Create Shader Grap
  • FBX导入Unity中模型没有材质的处理

    一 3dMax导出FBX时的注意事项 导出时 确保maps文件存在 里面放着fbx用到的image 二 在Unity中的设置 1 文件拖入Unity的Assets文件夹中 2 查看模型的材质是否存在 如下所示 材质为None 此时拖入sce
  • Unity Shader入门精要第七章 基础纹理之遮罩纹理

    Unity系列文章目录 文章目录 Unity系列文章目录 前言 一 实践 参考 前言 遮罩纹理 mask texture 是本章要介绍的最后一种纹理 它非常有用 在很多商业游戏中 都可以见到它的身影 那么什么是遮罩呢 简单来讲 遮罩允许我们
  • GooglePlay提审警告(com.google.android.gms:play-services-safetynet:17.0.0)

    1 Goole在今年6月份出的新政策 不在使用safetynet 而使用Play Integrity API 2 项目本身没有使用过safetynet 3 使用了firebase 查阅资料 解决方案如下 implementation pla
  • Unity3d获得android和ios设备的唯一标识

    android为mac地址 ios为advertisingIdentifier 函数都比较简单 网上也搜得到 我也就不多说了 主要是对于我们没做过安卓和IOS开发的人来说 整合进工程有各种的问题 我也就直接上网盘了点击打开链接 代码包里看得
  • unity实现鼠标右键控制视角

    主要实现的功能是相机跟随主角 鼠标右击移动后 相机的视角会旋转 思路 在主角里创建空的子物体 把相机绑在空物体上 通过旋转空物体来实现视角的旋转 要把相机调整到适当位置 代码如下 public float rotateSpeed 100 设
  • Unity3d中脚本无法编译问题(Monodevelop)

    使用Monodevelop打开脚本 编译时报错 具体错误忘记了 原因是 net框架引起 升级到 net框架4 5后解决
  • unity3d切换场景Application.LoadLevel(1)含义

    Application LoadLevel 1 场景ID
  • unity3d 自定义的图片无法放入source image中

    须将图片的texture type改为 sprite
  • Unity学习笔记

    一 旋转欧拉角 四元数 Vector3 rotate new Vector3 0 30 0 Quaternion quaternion Quaternion identity quaternion Quaternion Euler rota
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜

随机推荐

  • MySQL进阶面试题完全攻略

    除了基础题部分 本文还收集整理的MySQL面试题还包括如下知识点或题型 MySQL高性能索引 SQL语句 MySQL查询优化 MySQL高扩展高可用 MySQL安全性 问题1 char varchar的区别是什么 varchar是变长而ch
  • 雪过天晴:OTA熬过旅游业寒冬

    旅游业新年开门红的热闹余音犹在 OTA平台走入三年来最具总结意义的一个财报季 继携程 途牛后 同程旅行于3月21日公布了2022年全年财报 数据显示 2022年 同程旅行实现收入65 8亿元 经调整净利润6 5亿元 其中每个季度都保持了盈利
  • 再造STM32---第十九部分:I2C—读写 EEPROM

    本章参考资料 STM32F4xx 参考手册 STM32F4xx 规格书 库帮助文档 stm32f4xx dsp stdperiph lib um chm 及 I2C 总线协议 若对 I2C 通讯协议不了解 可先阅读 I2C 总线协议 文档的
  • stm32学习笔记-esp8266wifi模块连接云平台测试

    文章目录 一 ATK ESP8266模块简介 二 测试AT指令连接新大陆物联网云平台 一 ATK ESP8266模块简介 官方使用手册截图如下 我们知道这个wifi模块有三种模式 其串口通信波特率为115200 数据位为8 停止位为1 测试
  • 史上最全圣杯布局(转自前端神三元)

    圣杯布局如图 而且要做到左右宽度固定 中间宽度自适应 1 利用flex布局
  • 使用SSIS创建同步数据库数据任务

    SSIS SQL Server Integration Services 是用于生成企业级数据集成和数据转换解决方案的平台 使用 Integration Services 可解决复杂的业务问题 具体表现为 复制或下载文件 发送电子邮件以响应
  • 利用keil编写stm32循环点亮一LED灯

    利用keil编写stm32循环点亮一LED灯 在调试循环点亮一LED灯程序时 发现单步执行 能循环点亮 但连续执行时 不能循环点亮 后来发现 是我写的程序出了问题 应该在管脚置高和置低后均进行延时 程序如下 void LED Display
  • esp8266 eeprom_ESP8266内嵌网页配置WIFI及指令调试

    准备 1 智能网络模块 WIFI模块ESP8266 12S 12F 见底图2 Arduino IDE 最新版 1 8 13 目的 1 通过固件访问内置网页可以进行重置WIFI密码 见底图 2 通过固件内嵌网页可以进行指令测试 通过网页模拟串
  • Excel VBA 变量,数据类型&常量

    几乎所有计算机程序中都使用变量 VBA 也不例外 在过程开始时声明变量是一个好习惯 这不是必需的 但有助于识别内容的性质 文本 数据 数字等 在本教程中 您将学习 一 VBA变量 变量是存储在计算机内存或存储系统中的特定值 以后 您可以在代
  • 树的遍历(先序、中序、后序详解)

    树的遍历主要有三种 1 先序遍历 先遍历根节点 再遍历左节点 最后遍历右节点 2 中序遍历 先遍历左节点 再遍历根节点 最后遍历右节点 3 后序遍历 先遍历左节点 再遍历右节点 最后遍历根节点 总结 先 中 后就表示根节点的遍历处于哪个位置
  • Java开发环境搭建(进阶配置五 ——版本控制工具之GIT)

    与CVS SVN等集中式版本控制工具不同 Git是分布式版本控制工具 开发人员通过Checkout从中心版本库Copy一个完整的版本库到本地 就算不联网也可以进行commit update等操作 而且每次操作都是在本地进行 因而速度非常快
  • error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型

    用VS2015编译从GitHub上下载的一段代码 出现如下的错误提示 error C4146 一元负运算符应用于无符号类型 结果仍为无符号类型 warning C4244 从 double 转换到 float 可能丢失数据 error C4
  • Numpy中花式索引和shape用法

    原文转载自我的博客benym cn 总结一下最近学习中容易出现问题的地方 代码 from numpy import randMat random randint 0 10 4 3 print 原矩阵 n randMat 索引从0开始计数 p
  • jenkins+python自动化测试持续集成

    一 首先我们安装Jenkins 我这里采用的是 msi应用程序 根据提示进行安装 傻瓜式 最后会打开默认的网页地址 http localhost 8080 如果端口有冲突 可以去Jenkins的安装目录下的这个文件去改端口 二 进入Jenk
  • C/C++编程笔记:详解三种指针(悬空指针、空指针和野指针)

    悬空指针 指向已删除 或释放 的内存位置的指针称为悬空指针 指针用作悬空指针有三种不同的方式 内存分配 函数调用 如果x是静态变量 则不会出现问题 或p不会悬空 输出 5 变量超出范围 无效指针 无效指针是一种特定的指针类型 void 指向
  • Mycat实现读写分离,主备热切换

    实验环境 ubutu server 14 Master IP 172 16 34 212 Slave IP 172 16 34 34 156 Mycat server IP 172 16 34 219 不涉及过多理论 只有实现的过程 mys
  • COM三大接口:IUnknown、IClassFactory、IDispatch

    转载自 http blog sina com cn s blog 86d10dc701014m2v html 1 COM组件有三个最基本的接口类 分别是IUnknown IClassFactory IDispatch 1 1 COM规范规定
  • vuejs+element UI 点击编辑表格某一行时获取内容填入表单

    如果是已经有点经验的同学 可以直接看下面这个函数 应该就能明白怎么回事 新手可以看下面的详细教程 函数 handleEdit function index row this editFormVisible true this editFor
  • 【大一立项】如何亲手搭建ROS小车:硬件和软件介绍

    本次博客将详细介绍上篇博客中提到的ROS小车的硬件和软件部分 由于十一实验室不开门 所以部分代码还没有上传到Github 下位机 下位机使用Arduino 因为大一上刚学完用Arduino做循迹小车 其实Arduino作为ROS小车的下位机
  • Unity旋转角度范围限制

    因为Unity中在做旋转的时候是用四元数或者矩阵 有时候跟Transform组件面板显示的数值不一致 另外我们所有旋转角度常规数值其实是在 360 360度区间 所以我们判断一下 另外对于旋转角度范围予以限制 public float Cl