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&C#&随机数】随机数

    一个简单的随机数获得 0或1 使用了这样的代码 想要获得0或者1 if Input anyKeyDown float i 1 if i 1 i Random Range 0 Rang i i lt 0 5 0 1 Debug Log Cou
  • Unity 安卓打包

    Unity打包的方式有很多种 自动打包和手动打包 今天小弟就鼓捣鼓捣unity手动打包 如果想动态打包的话 可以去看其他大佬的帖帖哈 unity打包先配置环境 下载unity的时候可以顺道把unity的安卓包下载下来 如果忘了也没事 可以从
  • Input.GetAxis _ Unity3d

    Input GetAxis 获取轴 static function GetAxis axisName string float Description描述 Returns the value of the virtual axis iden
  • c#获取cpu序列号

  • [3dsMax]2018版下拉菜单项的子菜单无法选中

    软件自身问题 安装更新补丁即可解决 不想更新补丁也可以使用键盘的方向键进行选中 补丁百度云链接 https pan baidu com s 1LDxRFwQnR0GSONuz7wcEfA 提取码 6gpk
  • Unity动画控制器animator.CrossFade

    需要特别注意 1 CrossFade虽然可以不用任何逻辑来链接而直接跳转 但是CrossFade只能覆盖其他动画 当当前动画播放完毕而没有跳出这个动画时再次调用CrossFade将会失败 造成动画依旧停在原位 参数animator Cros
  • 对Unity3D 静态批处理和动态批处理的理解

    Draw Call就是CPU调用图像编程接口 像OpenGL或者 DirectX 简单来说 Draw Call就是由CPU发起的一个命令 添加到一个命令缓冲区 当GPU完成了上一次的渲染任务之后 会从命令缓冲区的命令队列中再取出一个并执行
  • unity中创建询问弹出窗口

    在开发过程中进程会遇到需要弹出一个窗口询问用户是否进行的操作 今天就来制作一个这样弹出窗口 然后根据弹出窗口的选择内容不同进行不同的操作 本例中主要是为了删除一个数据 而在删除数据操作前需要得到用户的一个确认操作 这里面主要用到了Notif
  • Unity 键盘控制人物移动——之输入方式代码的编写

    键盘输入 控制人物移动 在我们制作游戏中最常见的需求之一就是使用键盘移动游戏角色 那么我们首先需要获取键盘输入 以下提供两种方法获取键盘 这里尽量通过截图解释让大家理解代码的含义 GetInput void FixedUpdate Move
  • unity: C#的Action Event Delegate的异同

    目录 一 Action 二 Event 三 Action和Event区别 四 Delegate 总结 Action Event Delegate的异同 前言 Action Event和Delegate都是C 语言中的重要概念 分别用于管理函
  • java中Keytool的使用总结

    java中Keytool的使用总结 2011 02 26 15 30 15 分类 在申请Android Map API Key的时候使用到了java中Keytool 下面转一篇介绍java中Keytool的文章 http blog csdn
  • 【Unity步步升】监控与检测物体的各种方案,如:射线、碰撞、挂载等...

    在制作AR模型数值控制方案的时候遇到了检测的问题 学习过程受益匪浅 故今天为大家整理带来一篇监控与检测物体的参考方案集合 目录 一 射线检测 二 物体存在检测 三 碰撞检测 一 射线检测 单射线检测 首先完成搭建场景如下图1 1 我这里用到
  • 【Unity】如何让Unity程序一打开就运行命令行命令

    背景 Unity程序有时依赖于某些服务去实现一些功能 此时可能需要类似打开程序就自动运行Windows命令行命令的功能 方法 using UnityEngine using System Diagnostics using System T
  • 【转载】【Unity】WebSocket通信

    1 前言 Unity客户端常用的与服务器通信的方式有socket http webSocket 本文主要实现一个简单的WebSocket通信案例 包含客户端 服务器 实现了两端的通信以及客户端向服务器发送关闭连接请求的功能 实现上没有使用U
  • U3D游戏开发中摇杆的制作(UGUI版)

    在PC端模拟摇杆 实现玩家通过控制摇杆让玩家移动 以下是完整代码 using System Collections using System Collections Generic using UnityEngine using Unity
  • U3D游戏开发中摇杆的制作(NGUI版)

    在PC端模拟摇杆 实现控制摇杆让玩家或者物体移动 以下是完整代码 using System Collections using System Collections Generic using UnityEngine public clas
  • 游戏开发常见操作梳理系列之——玩家信息的显示系统

    在游戏中 有不少游戏在左上角会出现玩家的头像和等级以及血量 这就是玩家的信息显示系统 那么这些是如何制作的呢 接下来我将讲讲代码的操作 其它操作我会在其它笔记中一一说明 敬请期待 信息的显示相当简单就是控制一些UI 然后在其它系统里面填写相
  • 游戏开发常见操作梳理之小地图的制作

    游戏中一般存在小地图系统 实际上就是设置一个新的摄像机放置在玩家的正上方 然后在小地图上显示新摄像机看见的东西就可以了 在小地图上一般存在放大地图和缩小地图的按钮可以方便放大和缩小地图 这些操作是如何实现的呢 接下来直接上核心代码 usin
  • 游戏开发之常见操作梳理——武器装备商店系统(NGUI版)

    游戏开发中经常出现武器商店 接下来为你们带来武器装备商店系统的具体解决办法 后续出UGUI Json版本 敬请期待 武器道具的具体逻辑 using System Collections using System Collections Ge

随机推荐

  • 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