【Unity入门】11.脚本控制物体旋转

news/2024/5/3 5:15:55/文章来源:https://blog.csdn.net/cooclc/article/details/130119486

【Unity入门】脚本控制物体旋转

    大家好,我是Lampard~~

    欢迎来到Unity入门系列博客,所学知识来自B站阿发老师~感谢

(一)控制物体自转

(1)创建RotateLogic脚本

    上一篇文章我们学习了如何在脚本中获取物体对象,并使用transform组件下的translate接口使物体运动

    今天我们进一步学习,用脚本控制物体的旋转。首先需要借助一个风扇的模型便于观察:

     然后创建一个脚本RotateLogic挂在风扇上面,这个脚本的start方法和FirstLogic的一样可以读一下物体的名字看看有没有问题,设定一秒60帧,然后准备重写一下它的update方法就可以了

(2)欧拉角

    按照我们设置Position的思路,是不是在update新建一个Rotation的值,然后重新赋值给物体对象就可以了?

    然鹅并没有那么简单,在unity中Rotation并不是我们看到的三元值,而是一个四元组成的值,我们并不容易,且官方也不推荐我们直接修改rotation这个值

    那没有办法了吗?unity给我们提供了一个叫欧拉角的三元数,我们可以对transfrom组件下的欧拉角进行修改就可以实现我们对xyz方向的旋转 

    下面是欧拉角localEulerAngles的简介:

Unity中的欧拉角指的是物体绕三个坐标轴旋转的角度,分别称为俯仰角、偏航角和翻滚角。俯仰角是指物体绕x轴旋转的角度,偏航角是指物体绕y轴旋转的角度,翻滚角是指物体绕z轴旋转的角度。欧拉角的旋转顺序有多种,Unity中默认的旋转顺序是ZXY(翻滚角-俯仰角-偏航角)。在Unity中,我们可以使用Transform组件的eulerAngles属性来设置和获取物体的欧拉角值。

(3)让风扇旋转起来

    接下来就很简单了,仿照Position的做法,比如我们想让风扇1秒转一圈,那一帧就是就是跑360 * Time.deltaTime的角度,代码如下:

    void Update(){Vector3 angles = this.transform.localEulerAngles;angles.y += 360 * Time.deltaTime;this.transform.localEulerAngles = angles;}

    看看效果:

(4)transform.Rotate

    那有没有像translate这样方法,根据偏移值来设置物体的旋转呢?巧了,那就是transform.Rotate这个接口,它可以直接传入欧拉角的偏移值

    因此我们的三行代码就可以优化成一行:

    void Update(){this.transform.Rotate(0, 360 * Time.deltaTime, 0);}

(二)地月系统旋转

(1)地球自转

    接下来我们想实现地月系统旋转,首先第一步就是让地球自转起来,那很简单,我们把RotateLogic脚本挂在地球上就可以了

    嗯...有点快,我们把速度调低一些。缩小个4倍吧,让它四秒转一圈,看上去好多了

(2)月亮公转

    下一步就是实现月球的公转了,那要如何做呢?直接把RotateLogic挂给月亮也只是实现自转。这个时候我们就应该想起我们的父子关系

    如果月亮是地球的子节点,那地球转的时候就可以带动月亮转了

    但是问题来了,这样子的话月亮绕地球的转速就和地球自转的速度一样,我们知道地球一转一天,月球绕地球一周是需要27天的,速率明显不一样

    这个时候我们只需要在地球的位置挂载一个空节点作为旋转节点,调整其旋转速率,并让月亮成为它的子节点就可以了

    随便把速度设置为地球的三分一,看看效果:     

好啦今天就到这里,感谢阅读!!!
点赞,关注!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_285784.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle VM VirtualBox安装开放麒麟桌面版本操作

1.环境 Oracle VM VirtualBox版本6.1.18 开放麒麟桌面版本openkylin 0.0.5 https://mirror.lzu.edu.cn/openkylin-cdimage/yangtze/openkylin-0.9.5-x86_64.iso 1.创建新虚拟电脑 ql 并将ios导入 然后点击启动 注意: vm box如果鼠标设置不当的话 基本上不可能完成…

word脚标【格式:第X页(共X页)】

不得不吐槽一下这个论文,真的我好头疼啊。我又菜又不想改。但是还是得爬起来改 (是谁大半夜不能睡觉加班加点改格式啊) 如何插入页码。 格式、要求如下: 操作步骤: ①双击页脚,填好格式,宋体小四和居中都…

联想集团ESG与社会价值论坛召开,首次发布《联想集团2022社会价值报告》

对企业而言,ESG不再是选择题,而是必答题。 联想集团是ESG的先行者、领军者。 2023年4月11日,“联想集团ESG与社会价值论坛暨《联想集团2022社会价值报告》发布会”在京召开,会议由中国社会责任百人论坛、联想集团联合主办&#xf…

LeetCode:1. 两数之和——哈希表~

🍎道阻且长,行则将至。🍓 🌻算法,不如说它是一种思考方式🍀算法专栏: 👉🏻123 一、🌱1. 两数之和 题目描述:给定一个整数数组nums 和一个整数目标…

电脑组装教程分享!

案例:如何自己组装电脑? 【看到身边的小伙伴组装一台自己的电脑,我也想试试。但是我对电脑并不是很熟悉,不太了解具体的电脑组装步骤,求一份详细的教程!】 电脑已经成为我们日常生活中不可或缺的一部分&a…

Windows使用Dockers+battery historian踩坑记

1、首先,需要翻墙。 2、然后安装Dockers,网上好多博客说安装Docker Toolbox,我亲测无效,卸载后安装Docker for Windows,安装完成后打开,会提示: Hardware assisted virtualization and data e…

Anaconda + TensorFlow Winodws环境安装(Windows Terminal / Visual Studio)

目录前言个人环境Anaconda安装下载安装测试添加到windows terminalTensorFlow环境配置安装测试搭配Visual Studio 2022前言 以前发生的一些事情,让我认识到即便配环境这种事情,最好还是把自己的过程存个档 ,这个的安装虽然简单,但…

pytorch通过不同的维度提高cifar10准确率

这里写自定义目录标题通过模型通过优化器通过batchsize通过数据增强总结当前网络的博客上都是普遍采用某个迁移学习训练cifar10,无论是vgg,resnet还是其他变种模型,最后通过实例代码,将cifar的acc达到95以上,本篇博客将…

资本/车企持续加码的新赛道,谁将成为本土赢家?

随着汽车行业逐渐复苏,汽车厂商开始规划未来5年能促进销量的新技术,而AR-HUD就是被看好的技术之一。 Envisics创始人兼CEO Jamieson Christmas博士表示:我们几乎在与所有人合作,除了捷豹路虎、松下汽车系统外还有其他合作伙伴。此…

Vue3中readonly 与 shallowReadonly的使用区别?

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言readonly强行修改readonly:前言 readonly: 让一个响应式数据变为只读的(深只读)。 shallowReadonly: 让一个响应…

Docker Registry 本地镜像发布到私有库

本地镜像发布到私有库流程 是什么1 官方Docker Hub地址:https://hub.docker.com/,中国大陆访问太慢了且准备被阿里云取代的趋势,不太主流。2 Dockerhub、阿里云这样的公共镜像仓库可能不太方便,涉及机密的公司不可能提供镜像给公…

Java实现打印杨辉三角形,向左、右偏的平行四边形这三个图形代码程序

目录 前言 一、打印杨辉三角形 1.1运行流程(思想) 1.2代码段 1.3运行截图 二、向左偏的平行四边形 1.1运行流程(思想) 1.2代码段 1.3运行截图 三、向右偏的平行四边形 1.1运行流程(思想) 1.2代…

WebServer项目->计网知识补充

c大项目[WebServer项目]->计网知识补充1.网络结构模式C/S结构B/S结构2.MAC 地址3.IP 地址1)IP 地址编址方式2)A类IP地址3)B类IP地址4)C类IP地址5)D类IP地址(了解)6)特殊的网址7)子网掩码4.端口5.网络模型1)OSI 七层参考模型(Open System Interconnection&#xf…

HTML5 <img> 标签

HTML5 <img> 标签 实例 HTML5 <img>标签用于向网页中添加相关图片。 如何插入图像&#xff1a; <img src"smiley-2.gif" alt"Smiley face" width"42" height"42">尝试一下 &#xff08;更多实例见页面底部&…

CUDA编程基础与Triton模型部署实践

作者&#xff1a;王辉 阿里智能互联工程技术团队 近年来人工智能发展迅速&#xff0c;模型参数量随着模型功能的增长而快速增加&#xff0c;对模型推理的计算性能提出了更高的要求&#xff0c;GPU作为一种可以执行高度并行任务的处理器&#xff0c;非常适用于神经网络的推理计算…

RISC-V Linux 编译设备树

RISC-V Linux 编译设备树 flyfish 设备树是一种描述硬件资源的数据结构 引入设备树的主要目的 曾经 Linux内核中夹杂着大量的设备信息&#xff0c;影响Linux驱动开发效率&#xff0c;因为外部设备发生任何改动&#xff0c;需要重新编写和编译驱动代码。 现在 设备驱动程…

九龙证券|300亿空袭,港股吓懵了!

港股再度大幅回调&#xff0c;腾讯成了“导火索”。 当地时刻4月11日&#xff0c;腾讯大股东Prosus发布公告称拟再度进行回购&#xff0c;作为回购方案的一部分&#xff0c;Prosus本周将采纳行动&#xff0c;把9600万股腾讯股票以凭据方式移入香港中心结算系统&#xff0c;以便…

PyQt5学习笔记一、安装PyQt5和在PyCharm中配置工具

一、安装PyQt5 1. 可以在cmd窗口安装PyQt5和工具 可以在cmd窗口使用命令 pip install PyQt5 安装PyQt5&#xff0c;若指定版本使用命令 pip install PyQt5version&#xff0c;此时同时安装了PyQt5和sip。参考链接 在cmd命令窗口安装Python模块_Mr. 李大白的博客-CSDN博客htt…

【《C Primer Plus》读书笔记】第17章:高级数据表示

【《C Primer Plus》读书笔记】第17章&#xff1a;高级数据表示17.1 研究数据表示17.2 从数组到链表17.3 抽象数据类型&#xff08;ADT&#xff09;17.4 队列ADT17.5 用队列进行模拟17.6 链表和数组17.7 二叉查找树17.8 其他说明17.1 研究数据表示 在开始编写代码之前&#xf…

【Android入门到项目实战-- 5.1】—— 广播(一):接收系统广播

目录 一、什么是广播&#xff1f; 二、广播的类型 标准广播 有序广播 三、接收系统广播 1、动态注册监听网络变化 如何注册广播接收器&#xff1f; 2、静态注册实现开机启动 使用快捷方式创建广播接收器 实现开机广播 一、什么是广播&#xff1f; android广播机制就是…