Unity 事件函数的执行顺序

news2024/11/24 6:03:26

 脚本生命周期流程图

 

  • Awake:在所有 Start 函数之前,以及 prefab 实例化之后调用。(如果一个 GameObject 在启动期间处于非活动状态,则在激活之前不会调用它。)
  • OnEnable(仅在对象处于活动状态时调用):在对象启用后调用。这发生在创建 MonoBehaviour 实例时,例如加载关卡或实例化带有脚本组件的 GameObject 时。
  • OnLevelWasLoaded:执行此函数是为了通知游戏已加载新关卡。
  • Reset:当脚本的属性首次附加到对象时,以及使用 Reset 命令时,调用该函数来初始化脚本的属性。
  • Start:只有在脚本实例被启用时,才会在第一个帧更新之前调用 Start
  • OnApplicationPause:在检测到暂停的帧的末尾调用,在正常帧更新之间有效。在调用 OnApplicationPause之后,将会发出一个额外的帧,以允许游戏显示暂停状态的图形。
  • FixedUpdateFixedUpdate 通常比 Update 更频繁地被调用。如果帧率很低,它可以在每帧中调用多次;如果帧率很高,它也可能根本不会在帧之间被调用。所有物理计算和更新在 FixedUpdate 调用后立即发生。在 FixedUpdate 中应用移动计算时,不需要将值乘以 Time.deltaTime。这是因为 FixedUpdate 是在一个可靠的定时器上调用的,与帧率无关。
  • Update:每帧调用一次 Update。它是帧更新的主要主力函数。
  • LateUpdate:在 Update 调用完成后,每帧调用一次 LateUpdate。在 Update 中执行的任何计算都将在 LateUpdate 开始之前完成。LateUpdate 的一个常用功能是第三人称视角跟随相机。如果角色在 Update 中发生移动和旋转,那么相机的移动和旋转就应该在 LateUpdate 中发生。这将确保角色在摄像机跟踪其位置之前已经移动完成。
  • 渲染

  • OnPreCull:在摄像机对场景进行剔除前被调用。剔除动作决定了哪些对象对相机可见。OnPreCull 在进行剔除动作之前调用。
  • OnBecameVisible/OnBecameInvisible:当对象对任意相机可见/不可见时调用。
  • OnWillRenderObject:如果对象可见,则每个相机调用一次
  • OnPreRender:在相机开始渲染场景之前调用。
  • OnRenderObject:在所有常规场景渲染完成后调用。此时可以使用 GL 类或 Graphics.DrawMeshNow 来绘制自定义几何图形。
  • OnPostRender:在相机完成对场景的渲染后调用。
  • OnRenderImage:在场景渲染完成后调用,允许对图像进行后处理。
  • OnGUI:响应 GUI 事件,每帧调用多次。首先处理布局和重绘事件,然后为每个输入事件处理布局和键盘/鼠标事件。
  • OnDrawGizmos:用于在 scene 视图中绘制 Gizmo。
  • 协程

一般的协程更新在 Update 函数返回后运行。协程是一个函数,它可以暂停执行(yield),直到给定的 YieldInstruction 完成。协程的不同用法:

  • yield:下一帧的所有 Update 函数被调用后,协程继续。
  • yield WaitForSeconds:延时特定时间后,在当前帧所有 Update 函数被调用之后继续。
  • yield WaitForFixedUpdate:在所有脚本的 FixedUpdate 被调用后继续。
  • yield WWW:在一个 WWW 下载完成后继续。
  • yield StartCoroutine:将协程链起来,并等待 MyFunc协程首先完成。

  • OnDestroy:在对象存在的最后一帧的所有更新之后调用(对象可能在会响应 Object.Destroy 时或在场景结束时被销毁)。
  • OnApplicationQuit:在应用程序退出之前,将对所有游戏对象调用此函数。在编辑器中,当用户停止播放模式时调用它。
  • OnDisable:当行为被禁用或不活动时,将调用此函数

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

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

相关文章

为你揭开ai绘画女生软件的神秘面纱

黄琳:嘿,我最近听说了一种叫做ai绘画的东西,你知道它是什么吗? 罗娜:听说这是一种通过人工智能技术来生成艺术作品的过程和方法。 黄琳:哦,那它生成的效果如何呢?有什么软件可以实…

2023IKCEST “一带一路” 国际大数据竞赛重磅启动!

2023IKCEST第五届“一带一路”国际大数据竞赛暨第九届百度&西安交大大数据竞赛,由联合国教科文组织国际工程科技知识中心(IKCEST)、中国工程科技知识中心(CKCEST)、百度及西安交通大学共同主办,旨在放眼…

LINUX安装nginx详细步骤,部署web前端项目

1. 安装依赖包 //一键安装上面四个依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 2. 下载并解压安装包 可以去https://nginx.org/download里面找最新的包,nginx-1.25.1.tar.gz及以后的,里面资源比较多,耐心寻…

飞行动力学 - 第7节-起飞性能 之 基础点摘要

飞行动力学 - 第7节-起飞性能 之 基础点摘要 1. 气动特性2. 起飞性能3. 性能指标3.1 地面滑跑阶段3.2 起飞滑跑距离估算 4. 跑道4.1 编号4.2 等级 5. 参考资料 1. 气动特性 起飞不仅需要考虑升力,还需要在有限跑道长度上加速,因此襟翼放出的角度不能太大…

Claude 2正式上线;Prompt在手,天下我有

🦉 AI新闻 🚀 Claude 2正式上线,AI能力全面提升 摘要:Claude 2正式上线!作为ChatGPT的强力挑战者,Claude 2的到来绝对是一个重磅事件。Claude 2性能更强,响应更快,并正式推出了网页…

MPI转以太网模块西门子200以太网通讯设置

你有没有想过,微生物发酵行业的生产控制可以如此先进?今天我们要介绍的是一项关于MPI转以太网模块在发酵集散控制系统中的应用。 这个系统由上位机和下位机组成,可以实现工程师站和操作员站之间的无缝连接,同时还可以实现远程工作…

微信小程序之网络数据请求 wx:request的简单使用

网络数据请求 1. 网络数据请求 wx:request2. 请求格式3. 关闭request的合法检验 1. 网络数据请求 wx:request 出于安全性方面的考虑,小程序官方对数据接口的请求做出了两个限制:只能请求 HTTPS 类型的接口必须将接口的域名添加到信任列表中. 在自己的微…

数智化转型下,财务共享各类RPA建设如何避坑?

企业数智化转型时代的热词——RPA是业务流程优化的利器之一。但对于部分非IT人士对RPA在企业管理领域的运用优势及实施注意点还不太了解,今天与大家快速科普一下。 RPA全称为Robotic Process Automation, 即机器人流程自动化,是一种能够在计算机/手机等…

【C++】 Qt-线程挂起、恢复和退出

文章目录 线程挂起和恢复内核对象线程退出 线程挂起和恢复 我们给设置线程的函数创建一个线程句柄用来接收返回值,并且将状态改为挂起状态 然后在循环中当第五秒时恢复线程,第八秒时连续挂起两次线程,并且返回输出挂起计数器的值&#xff08…

【C++ OJ练习】7.字符串相加

1.题目链接 力扣 2.解题思路 拿到每个字符后 减去字符0 转化成对应的数字 再相加即可 倒着加 因为有进位的情况 最后头插或 者尾插加逆置 3.代码 class Solution { public:string addStrings(string num1, string num2) {//倒着往回加int end1 num1.size() - 1;int end2…

走进Vue2飞入Vue3

✅作者简介:大家好,我是Cisyam,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Cisyam-Shark的博客 💞当前专栏: 前端相关 ✨特色专栏&…

C语言中的宏

宏定义又称为宏替换,简称“宏”,在C语言预处理阶段被处理,编译器会根据宏定义进行文本替换。这样做的好处有许多,它可以为程序员在编程时提供方便,并能在一定程度上提高程序的运行效率。 本文将通过一部分场景&#xf…

原码、反码和补码之间的转换

(꒪ꇴ꒪(꒪ꇴ꒪ ),hello我是祐言博客主页:C语言基础,Linux基础,软件配置领域博主🌍快上🚘,一起学习!送给读者的一句鸡汤🤔:集中起来的意志可以击穿顽石!作者水平很有限,如果发现错误…

DataEase中点数据集,报Data source connection exception: Access denied for user错误

【现象】&#xff1a; 2023-07-12 10:53:19,436 DEBUG .DeEngineMapper.selectByExampleWithBLOBs: 137 - < Total: 1 java.sql.SQLException: Access denied for user ****** (using password: YES)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965…

MySQL基础篇第8章(聚合函数)

文章目录 1、聚合函数介绍1.1 AVG和SUM函数1.2 MIN和MAX函数1.3 COUNT函数 2、GROUP BY2.1 基本使用2.2 使用多个分组2.3 GROUP BY中使用WITH ROLLUP 3、HAVING3.1 基本使用3.2 WHERE和HAVING的对比 4、SELECT的执行过程4.1 查询的结构4.2 SELECT执行顺序4.3 SQL的执行原理 1、…

【MQ】Windows上RabbitMQ的安装与启动

文章目录 下载Erlang安装RabbitMQ 下载Erlang RabbitMQ基于Erlang语言&#xff0c;因此使用RabbitMQ之前需要先安装Erlang&#xff0c;如下 Erlang语言下载 这里我是用的是25.2.2这个版本&#xff0c;我的机器是64bit的&#xff0c;所以下win64的即可。 下载完毕安装包之后点…

Wholebody 3D keypoint估计:从H3WB开始

目录 前言一、&#xff28;&#xff13;&#xff37;&#xff22;1.下载2.标注格式3.任务分析验证评估 总结 前言 这份工作是首次尝试去检测&#xff13;D全人体姿态的工作&#xff0e;我们使用的数据集是基于Human3.6M的&#xff13;&#xff24;全人体关键点数据集&#xff…

【宝塔】宝塔部署ThinkPHP项目

最近搞了个培训教育的小程序&#xff0c;后端服务用的是ThinkPHP。使用的过程中&#xff0c;发现对于这种小项目用php还是很不错的选择&#xff0c;开发便捷&#xff0c;轻量级。宝塔神器也是很不错的&#xff0c;值得推荐使用。 下面介绍一下项目中用宝塔部署ThinkPHP项目&…

USB枚举过程详解

1 USB枚举流程 1.1 USB枚举流程 USB SETUP command的状态阶段的状态包是个ZLP。 Anchor chips -> Netchip -> PLX -> Avago -> Broadcom The USB3380 is EOL and the kits that were by Taiwan Bplus. PLX USB3380设备控制器使用2个32bit寄存器存放setup的8个字节&…

数据库-表的增删改查

这里写目录标题 新增&#xff08;Create&#xff09;查询条件查询运算符逻辑运算符分页查询 修改&#xff08;Update&#xff09;删除&#xff08;Delete&#xff09; 注释&#xff1a;在SQL中可以使用“–空格描述”来表示注释说明 新增&#xff08;Create&#xff09; 语法…