【Unity入门】9.帧更新

news2025/1/15 22:46:35

【Unity入门】帧更新

    大家好,我是Lampard~~

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

(一)获取挂载对象的属性信息

(1)获取名字信息

    首先在C#代码中,this代表着脚本本身,而this.gameObject则是记录着脚本挂载的对象。那么要访问该对象的名字属性,我们可以:

string name = this.gameObject.name;
Debug.Log("当前物体的名字是" + name);

    也可以直接省略gameObject,用this.name去访问(有点像cocos的getChild)

string name = this.name;
Debug.Log("当前物体的名字是" + name);

    看看运行后的输出效果,当前组件是挂在Moon月亮上的,所以输出没有问题

(2)全局坐标

    我们可以通过transtion组件来访问到对象的position信息,具体写法如下:

Vector3 pos = this.transform.position;
Debug.Log("当前物体的位置坐标是" + pos);

    看看输出效果:

    访问是访问到了,但是好像和Moon对象身上的属性值不太一样

     那是因为当前的月亮是挂在地月系统节点上的,我们看看当前“地月系统”节点的坐标值,通过换算就可以得出刚才打印的结果了。由此我们也知道,position是取的对象的全局坐标而并非局部坐标

(3)局部坐标

    每次都得换算一下来验证坐标正不正确多麻烦呀,所以我们可以通过transform的localPosition属性直接访问对象的局部坐标信息

     看看结果:

(4)重新设置坐标位置

    既然get到了坐标,那么下一步set一下是否能行呢?

     那毫无疑问肯定是可以的,我们可以观察得到,position是Vector3类型的,那么直接new一个新的替换上去就好啦

this.transform.localPosition = new Vector3(5f,5f,0);

(二)帧更新

(1)使用update方法

    和cocos一样,unity也有一个update方法,就是游戏的每一帧都会执行一次这个update方法。那么具体是多久执行一次呢?我们可以通过Time.deltaTime字段来访问

     然后执行查看console框,发现在默认情况下,大概是0.005~0.01这个范围。也就是每秒100~200帧之间

    帧率并不是一个固定的值,它和设备当前的状态有关,就比如我们玩游戏时,遇到一些绚丽的特效,或者一条短信进来的时候,可能都会发生掉帧的现象。我们现在可以通过Application.targetFrameRate来设置我们这个demo的帧率,unity会尽量按照设置的帧率来执行

    比如现在设置Application.targetFrameRate = 60

    可以看到,设置完之后的执行时间是大概维持在0.016,也就是一秒执行60次

(2)每帧设置坐标的值

    我们可以在update方法中,修改物体的坐标,那么就可以实现物体的移动效果.比如这样就可以让每次执行update的时候让物体的x移动0.1个单位

    注意修改的坐标,需要重新复制给localPosition属性,因为Vector3是一个值类型,当它发生修改的时候就会生成一个新的对象来记录,并不可以在原来的基础上直接修改的

    ok那现在小球就动起来了,但是需要考虑到,因为执行update的时间并不是固定的,要想实现匀速运动,我们得换一个写法:比如我们想要一帧跑0.1个单位,那一秒60帧就是一秒跑6个单位

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL 事务和视图

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…

Machine Learning-Ex3(吴恩达课后习题)Multi-class Classification and Neural Networks

目录 1. Multi-class Classification 1.1 Dataset 1.2 Visualizing the data 1.3 Vectorizing Logistic Regression 1.3.1 Vectorizing the cost function(no regularization) 1.3.2 Vectorizing the gradient(no regularization&#…

【ESP-IDF】如何安装ESP-IDF?

【ESP-IDF】如何安装ESP-IDF?Windows命令行安装ESP-IDFVs Code 图形IDE首先参考这篇视频:https://www.bilibili.com/blackboard/webplayer/embed-whitelist-other.html?aid520120377&bvidBV1hM411k7zz&cid888070526&page1本篇教程以Windows…

vue2路由守卫

全局前置_路由守卫 以前古代有一个职称叫御前侍卫:保护君王的安全,而路由守卫就是保护路由的安全(权限) 就是在Home组件中,我们需要先校验内容中的school是否满足要求,才能展示组件,否则不展示…

SpringBoot项目中遇到的订单支付超时未支付关闭订单的解决方案

1、扫表轮循 定时任务 > 获取数据 > 数据层 > 筛选出过期的数据 > 批量关闭超时订单 优点:实现简单、适用于小项目、数据量比较少 缺点:订单量过大的时候查询和修改数据库压力大、服务器内存消耗大、IO瓶颈 2、Redis懒删除 用户获取订单信…

java SSM选房管理系统idea开发mysql数据库java编程计算机网页源码maven项目

一、源码特点 SSM选房管理系统是一套完善的完整医院类型系统,结合SSM(SpringSpringMVCMyBatis)框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系…

Twitter的推荐系统开源了,Twitter的推荐系统是什么样的呢?Twitter推荐系统的架构说明

Twitter的推荐系统开源了,Twitter的推荐系统是什么样的呢?Twitter推荐系统的架构说明01. Twitter的推荐系统是什么样的?02. Candidate Sources2.1 In-Network Source2.2 Out-of-Network Sources03. Ranking04. Heuristics, Filters, and Prod…

VR虚拟核电设备拆除模拟培训降低风险

核电站设备拆除是一项高危、复杂的任务,因此进行安全、有效的培训至关重要。为此,将VR虚拟现实技术应用于核电厂中,通过100%模拟还原真实的拆除操作场景,广泛应用到核电厂展示、巡检和拆除等环节中,极大提高了生产效率…

单片机学习之中断与定时/计数器

记录学习中断的使用。 1. 使用工具 使用开发板: 普中科技开发板 编译软件: keil 2. 复习中断及相关概念 CPU在处理 事件A 时,中断源 发出中断请求,请求cpu处理事件B ,cpu 中断 当前工作,转去处理事件B&a…

HTML5 视频 Video

文章目录HTML5 视频 VideoWeb站点上的视频浏览器支持HTML5 (视频)- 如何工作视频格式与浏览器的支持视频格式HTML5 \<video> - 使用 DOM 进行控制HTML5 Video 标签HTML5 视频 Video 很多站点都会使用到视频. HTML5 提供了展示视频的标准。 Web站点上的视频 直到现在&am…

详解数据恢复多少一个g以及如何恢复

整理电脑硬盘数据的时候不小心删除了重要的文件该如何么恢复呢?硬盘修复数据恢复价格都爱的贵不贵?今天小编就来给大家重点当前市场上硬盘数据恢复的价格相关内容&#xff0c;那么数据恢复多少钱一个g呢?下面就来给大家揭晓一下数据恢复多少钱一个g以及如何恢复。 工具/原料…

全国青少年电子信息智能创新大赛(决赛)python·模拟三卷,含答案解析

全国青少年电子信息智能创新大赛(决赛) python 模拟三卷 一、程序题 第一题:描述 现有 n 个人依次围成一圈玩游戏,从第 1 个人开始报数,数到第 m 个人出局,然 后从出局的下一个人开始报数,数到第 m 个人又出局,...,如此反复到只剩下 最后一个是胜利者。设 n 个人的编号…

常用 Composition API--工程文件及setup

官方文档: https://v3.cn.vuejs.org/guide/composition-api-introduction.html 分析工程结构 vue3新添加的东西或修改的内容 首先import { createApp } from vue引入的不再是Vue的构造函数了&#xff0c;而是一个createAPP的工厂函数&#xff0c;什么是工厂函数&#xff1f; …

【TimeSerias】Transformer

Sequence 1. rnn 和 cnn RNN 很难并行化CNN很难捕捉较远的信息 2. Self-attention 拿每个query q去对每个 key k做attention 计算输出 Self-attition 矩阵计算 qiWqaikiWkqiviWvaiQWqAKWkAVWvA(1.1)\begin{align*} q^i & W^q a^i \\ k^i & W^k q^i \\ v^i & W…

WordPress图片水印插件 Easy Watermark

1、概述 WordPress图片水印插件Easy Watermark 是一款实现上传图片自动添加水印LOGO功能的高效插件。当我们在WordPress网站后台上传图片文件到媒体库时&#xff0c;或者在发布文章上传图片时&#xff0c;Easy Watermark 都能为图片自动添加水印&#xff0c;同时&#xff0c;还…

《计算机网络-自顶向下》06. 链路层和局域网

文章目录链路层概述链路层提供的服务链路层在何处实现差错检测和纠正技术奇偶校验循环冗余检测多路访问协议信道划分协议随机接入协议时隙 ALOHAALOHA载波侦听多路访问 —— CSMA具有碰撞检测的载波侦听多路访问 —— CSMA/CDCSMA/CD 效率轮流协议DOCSIS&#xff1a;用于电缆因…

c++11 标准模板(STL)(std::stack)(五)

定义于头文件 <stack> template< class T, class Container std::deque<T> > class stack; std::stack 类是容器适配器&#xff0c;它给予程序员栈的功能——特别是 FILO &#xff08;先进后出&#xff09;数据结构。 该类模板表现为底层容器的包…

C++实现:学生管理系统(详细解析)

目录 1.题目要求 2.需求分析 3.整体设计 4.详细设计 主函数设计 学科科目类 主菜单 读取文件与写入文件 效果如下 添加学生信息 删除学生信息 ​编辑 修改学生信息 显示信息列表 显示学生列表 将学生列表按学号升序排列 将学生列表按平均分降序排列&#xff0c;平…

文件操作File类,OutputStream、InputStream、Reader、Writer的用法

文章目录File 类OutputStream、InputStreamInputStreamOutputStreamReader、WriterReaderWriter注意事项简单模拟实战File 类 Java标准库中提供的File类是对硬盘上的文件的抽象&#xff0c;每一个File对象代表了一个文件&#xff0c;因为文件在硬盘上存储&#xff0c;而直接操…

4月11日作业修订

A.这主要看你互斥锁锁的资源是那部分的&#xff0c;如果是进程内资源&#xff0c;则可以实现同一进程不同线程之间的互斥&#xff0c;而如果将共享内存作为互斥锁进行操作则可以实现不同进程之间的互斥。 B.这是必然的&#xff0c;加锁是为了防止数据的二义性 C.信号量同时使…