MonoBehaviour 组件


MonoBehaviour 组件是指继承了 MonoBehaviour 类的脚本组件,可以附加到游戏对象上,用于控制游戏对象的行为和交互。
MonoBehaviour 类是 Unity 中的一个基类,提供了许多方法和事件,用于处理输入、渲染、碰撞、协程等操作。

Unity MonoBehaviour 的生命周期是指 MonoBehaviour 类提供的一系列函数,这些函数在不同的时刻被 Unity 引擎自动调用,用于处理游戏对象的初始化、更新、渲染、销毁等操作。MonoBehaviour 的生命周期函数有以下几种¹:

- Awake:当脚本实例被加载时调用,只执行一次。
- OnEnable:当脚本组件被启用时调用,只执行一次。
- Start:在第一次 Update 之前调用,只执行一次。
- FixedUpdate:在固定的时间间隔内调用,通常用于处理物理相关的操作。
- Update:在每一帧中调用,通常用于处理逻辑相关的操作。
- LateUpdate:在每一帧的 Update 之后调用,通常用于处理相机或跟随物体的操作。

- OnGUI:在每一帧中调用两次,用于处理 GUI 相关的操作。
- OnDisable:当脚本组件被禁用时调用,只执行一次。
- OnDestroy:当脚本实例被销毁时调用,只执行一次。

 

 

 

 这张图是 Unity 3.4 版本的 MonoBehaviour 的生命周期的流程图,由 Richard Fine 在 2012 年创建。它分为三个部分:启动、编辑模式和销毁。它说明了当一个新的组件被创建、初始化、更新、渲染和销毁时,Unity 引擎会自动调用哪些 MonoBehaviour 的函数。这些函数有 Awake、OnEnable、Start、FixedUpdate、Update、LateUpdate、OnGUI、OnDisable 和 OnDestroy。这些函数的作用和调用顺序在图中用不同的颜色标注了出来,绿色表示开始,黄色表示中间,红色表示结束。

OnWillRenderObject 是一个 MonoBehaviour 的函数,它在每个摄像机如果物体可见的情况下被调用一次。这个函数是在裁剪过程中,在渲染所有被裁剪的物体之前被调用的。你可以使用这个函数来创建依赖的渲染纹理,如果你只想在渲染的物体真正可见的时候更新渲染纹理

OnGUI 是一个 MonoBehaviour 的函数,它是用来实现和处理 IMGUI(Immediate Mode GUI)系统的。IMGUI 是一种用于渲染和处理 GUI 事件的系统,它不需要创建和保存 GUI 元素的对象,而是直接在每一帧中绘制和响应 GUI 元素。OnGUI 函数会在每一帧中被多次调用,每次调用都对应一个 GUI 事件。你可以在 OnGUI 函数中使用 Unity 提供的一些 IMGUI 控件,如按钮、滑动条、文本框等,来创建你想要的 GUI 界面。你也可以重写 OnGUI 函数,来自定义你的 GUI 逻辑和效果。 

yield WaitForEndOfFrame 是一个 Unity 提供的一个特殊的对象,它可以用在协程(Coroutine)中,来实现在每一帧的最后时刻执行一些操作。协程是一种可以在多个帧中分段执行的函数,它可以使用 yield 语句来暂停和恢复执行。yield WaitForEndOfFrame 会让协程在所有的摄像机和 GUI 渲染完毕,就在显示帧到屏幕之前恢复执行。你可以使用它来读取屏幕的内容到一个纹理中,编码成一个图片文件(参见 Texture2D.ReadPixels 和 Texture2D.EncodeToPNG),并发送到某个地方

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

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

相关文章

C盘空间不足:解决办法完整教程

当C盘空间不足时,你可以尝试以下几种解决方案: 1. 清理临时文件:使用Windows自带的磁盘清理工具,可以删除临时文件、回收站中的文件和其他不必要的系统文件,释放一些空间,推荐使用工具分区助手。 2. 卸载不…

React 框架下自己写一个braft编辑器,然后将编辑器内容展示在网页端

1.首先自己写一个编辑器 输入文字; 支持选择表情; 可添加小程序链接;可添加网页链接;并且可以编辑删除;效果如下 2.输入完毕后,点击文本输入框保存,将便携式内容回显, 渲染时…

[MySQL]MySQL用户管理

[MySQL]MySQL用户管理 文章目录 [MySQL]MySQL用户管理1. 用户的概念2. 用户信息3. 创建用户4. 修改用户密码5. 删除用户6. MySQL中的权限7. 给用户授权8. 回收权限 1. 用户的概念 MySQL中的用户分为超级用户(root)和普通用户。超级用户的操作是不受权限…

机器人制作开源方案 | 智能垃圾桶

1. 功能说明 智能垃圾桶是一种利用物联网技术和智能感知能力的智能设备,旨在提高垃圾分类和处理的效率。通常具备以下特点和功能: ① 智能感知:智能垃圾桶配备各种传感器,如压力传感器、红外线传感器等,可以实时感知…

Spring Cloud 之 Gateway 网关

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…

网络安全 Day20-计算机网络基础知识05(网络原理)

计算机网络基础知识05(网络原理) 1. OSI 模型2. VMware虚拟机NAT模式下上网原理3. 不能上网故障排查 1. OSI 模型 OSI 7层网络通信原理模型 OSI 国际网互联 OSI 数据包封装解封装过程 北京局域网主机A到深圳局域网主机B数据工作流程 2. VMware虚拟机N…

VUE中的生命周期、每个生命周期可以干什么

生命周期 就VUE来说就是一个程序的即将创建到销毁的一个过程,也就是vm对象实例从创建到最终销毁的过程。 VUE生命周期4个阶段8个钩子函数(到某一阶段自动调用的函数) 1.初始阶段(虚拟的DOM生成) beforeCreate() 初始化事件对象和生命周期…

人类机器人编程的心理机制(一)

\qquad 本文中的人类机器人编程(Human Robot Programming)意指“基于创伤的脑控(trauma-based mind control, T.B.M.C)”或“基于创伤的编程(trauma-based programming)”,文中用英文缩写“T.B.M.C”指代。T.B.M.C的操纵主体是施加编程的个人或机构,文中…

el-table 表头设置渐变色

<el-table :data"tableData" stripe><el-table-column prop"name" label"测试" align"left"></el-table-column><el-table-column prop"code" label"测试1" align"left"></…

Sui Move与标准Move的有哪些区别和根本性创新

Sui网络将Sui Move作为其本地编程语言&#xff0c;使用Sui Move编写的apps利用Sui的共识机制&#xff0c;实现了令人印象深刻的交易性能。 然而&#xff0c;熟悉Move编程语言的开发者在探索Sui文档时可能会感到困惑&#xff0c;因为该文档着重介绍了对象和一些指令&#xff0c…

kafka消费者api和分区分配和offset消费

kafka消费者 消费者的消费方式为主动从broker拉取消息&#xff0c;由于消费者的消费速度不同&#xff0c;由broker决定消息发送速度难以适应所有消费者的能力 拉取数据的问题在于&#xff0c;消费者可能会获得空数据 消费者组工作流程 Consumer Group&#xff08;CG&#x…

git 提示 不能合并

今天A分支合并B分支&#xff0c;提示“不能合并” 最终发现&#xff0c;是另一个分支的版本落后导致&#xff0c;但是git并未提示出来 有遇到这种问题可以先检查下版本

如何有效跟踪你的计费时间?

对于自由职业者、小型企业和远程团队来说&#xff0c;时间跟踪是必需的。了解自己在单个项目或任务上投入了多少时间&#xff0c;可以帮助他们有效管理资源和优化工作流程。 然而&#xff0c;在向客户收费时&#xff0c;时间跟踪多了一层复杂性&#xff1a;不仅需要跟踪所花费…

Linux工具——vim

安装vim yum -y install vim 如果安装失败&#xff0c;提示Could not resolve host:mirrorlist.centos.org: Unkown error的问题&#xff0c;需要替换yum源&#xff0c;可以参考这个文章 配置vim root的vim配置文件在 /etc/vimrc 普通用户的vim配置文件在用户对应家目录下&a…

react实现页面动态表单设计器(自定义推拽表单)

react实现页面动态表单设计器&#xff08;自定义推拽表单&#xff09; 实现效果安装插件使用组件介绍基本设置&#xff0c;可设置控件标签&#xff0c;是否必填&#xff0c;校验规则校验规则有如下几种多选&#xff0c;下拉&#xff0c;单选可动态设置每个选择的label以及值 实…

一百三十三、Hive——Hive外部表加载含有JSON格式字段的CSV文件数据

一、目标 在Hive的ODS层建外部表&#xff0c;然后加载HDFS中的CSV文件数据 注意&#xff1a;CSV文件中含有未解析的JSON格式的字段数据&#xff0c;并且JSON字段中还有逗号 二、第一次建外部表&#xff0c;直接以&#xff0c;分隔行字段&#xff0c;结果JSON数据只显示一部分…

【1++的C++初阶】之list

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的C初阶】 文章目录 一&#xff0c;什么是list二&#xff0c;构造与析构2.1 结点结构2.2 链表结构2.3 迭代器结构 三&#xff0c;部分重要接口的作用及其实现3.1 迭代器相关的接口3.2 list相关…

【VCS】(5)Fast RTL-level Verification

Fast RTL-level Verification General Coding GuidlinesLab --- simprofile$display() 输出彩色内容 前面的内容都是在说怎样进行仿真和验证&#xff0c;即如何使用 VCS 。 但是&#xff0c;仿真和验证是不是也有所讲究&#xff1f; 有没有一些标准来衡量设计代码和验证代码的质…

62. 不同路径

题目链接&#xff1a;力扣 解法一&#xff1a;动态规划 定义状态&#xff1a;对于m*n的网络&#xff0c;从最后一行到右下角&#xff0c;以及从最后一列到右下角&#xff0c;都只有一条不同路径&#xff1a;一直向右或一直向下&#xff0c;所以可以定义状态&#xff1a;dp[i][…

OpenCV系列__chapter2

这里写目录标题 1 图像加减乘除位运算1.1 加法 img cv2.add(img1, img2)1.2 减法 img cv2.subtract(img1, img2)1.3 乘法 img cv2.multiply(img1, img2)1.4 除法 img cv2.divide(img1, img2)1.5 位运算 2 图像增强2.1 线性变换2.2 非线性变换 3 图像几何变换3.1 裁剪、放大…