MonoBehaviour 组件

news2024/9/29 10:13:09


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.coloradmin.cn/o/789115.html

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

相关文章

Spring Boot实践

一、Spring Boot简介 Spring Boot是一个基于Spring框架的快速开发应用程序的工具。它提供了一种快速、方便的方式来创建基于Spring的应用程序,而无需繁琐的配置。Spring Boot通过自动配置和约定大于配置的方式,使得开发者可以更加专注于业务逻辑的实现&…

STM32MP157驱动开发——按键驱动(阻塞与非阻塞)

“阻塞与非阻塞 ”机制: 阻塞: 使用 休眠唤醒机制,read函数会休眠,是阻塞的使用 poll 时,如果传入的超时时间不为 0,表示 read函数会休眠,这种访问方法也是阻塞的。 非阻塞 使用 poll 时&am…

王道考研数据结构--4.3链队列

目录 前言 1.链队列的定义 2.链队列的结构 3.链队列的操作 3.1定义链队列 3.2初始化 3.3入队 3.4出队 3.5遍历求表长 3.6清空,销毁 4.完整代码 前言 日期:2023.7.25 书籍:2024年数据结构考研复习指导(王道考研系列&…

消融实验(Ablation experiment)

最近读论文遇到消融实验(Ablation experiment)这个概念。 在论文《Deep Snake for Real-Time Instance Segmentatione》中5.2. Ablation studies 。 消融实验类似于“控制变量法”。 假设在某目标检测系统中,使用了A,B&#xff0…

语言尽头的奇幻旅程:如何求解最后一个单词的长度?

本篇博客会讲解力扣“58. 最后一个单词的长度”的解题思路,这是题目链接。 以示例2为例:s " fly me to the moon " 首先,找到字符串末尾的\0。s一开始指向首字符f,我们从这个位置开始,向后遍历&#xff0c…

20.1 HTML 介绍

1. W3C组织 万维网联盟(World Wide Web Consortium, W3C): 是一个国际性的标准化组织, 致力于开发和推广Web标准.W3C的使命是通过制定和推广Web技术标准, 促进Web的长期发展和互操作性, 它由许多组织和个人组成, 包括浏览器制造商, 软件开发商, 网络服务提供商, 学术机构和个…

【爬虫逆向案例】某道翻译js逆向—— sign解密

声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢! 【爬虫逆向案例】某道翻译js逆向—— sign解密 1、前言2、步骤3、源码4、号外 1、前言 相信各位小伙伴在写…

【Linux命令200例】chown修改文件或目录的所有者

🏆作者简介,黑夜开发者,全栈领域新星创作者✌,2023年6月csdn上海赛道top4。 🏆本文已收录于专栏:Linux命令大全。 🏆本专栏我们会通过具体的系统的命令讲解加上鲜活的实操案例对各个命令进行深入…

软件测试测试分类(重点)

目录 按照测试对象划分(了解) ①界面测试 ②可靠性测试(可用性) ③容错性测试 容错性和可靠性之间的区别 ④文档测试 ⑤兼容性测试 ⑥易用性测试 ⑦安装、卸载测试 ⑧安全测试 ⑨性能测试 内存泄露测试 按照是否查看…

cocosCreator 之 Button

版本: 3.4.0 参考:Button组件 简介 Button组件主要用于响应用户的点击操作,属性检查器中的示意图: Button组件的主要属性有: Interactable 表示按钮是否可交互,如果未勾选表示禁用Transition表示按钮状态…

EAP设备自动化控制系统在设备数采和控制方面的优势

随着科技的不断进步和工业自动化的发展,EAP(Equipment Automation Program)设备自动化控制系统在各个行业中扮演着越来越重要的角色。作为连接MES(Manufacturing Execution System)和设备层的沟通桥梁,EAP系…

周训龙老兵参观广西森林安全紧急救援装备演练

7月21日上午,周训龙老兵参观广西紧急救援促进中心在南宁市青秀山举行森林安全紧急救援装备演练,多功能水罐消防车、无人救援机等先进设备轮番上阵,展示了广西应对突发事件的紧急救援速度和水平。广西壮族自治区应急厅不情愿参此次演练活动。 …

平板用的触控笔什么牌子好?ipad第三方电容笔推荐

随着技术的发展,出现了各种各样的平板电容笔。一支好的电容笔,不但可以极大地提升我们的工作效率,还可以极大地提升我们的学习效果。平替的电容笔,无论是在技术方面,还是在质量方面,都还有很大的提升空间&a…

Visio文件编辑查看工具Visio Viewer for Mac

Visio Viewer for Mac可以打开和查看Visio文件(.vsd、.vdx和.vsdm文件)。它具有简单易用的用户界面,可以快速加载和显示Visio文件。此外,它还支持导出文件为PDF、PNG、JPEG等格式,方便用户进行文件转换和共享。 Visio…

spring初识

一、如何快速创建一个spring项目? 1. 首先在网页https://start.spring.io/中进行项目配置 2. 将下载下来的安装包进行解压,并在IDEA中打开项目。 3. 在application.propertie文件中进行数据库连接的相关配置 spring.datasource.urljdbc:mysql://127.0.0…

【ICCV2023】 MRN:一种多路复用路由网络的增量多语言文本识别方法

一句话总结 这项工作作为文本识别领域在增量学习设定下的第一次尝试。我们提出了增量多语言文本识别任务,以及该场景独有的挑战:回放不平衡问题,实验结果和可视化表明模型成功解决了这一问题。 相关资源 论文链接: arxiv.org/a…

掌握Python的X篇_8_数字与字符串之间的转换(字符串转数字int;数字转字符串str)

本篇将会介绍如何使用Python中的内置函数将数字型变量与字符串变量进行相互转换。 文章目录 1. 字符串转数字2. 数字转字符串 在上篇中写如下代码会报错 In [12]: num1input("请输入num1") 请输入num1345 In [13]: print(num1*10) 345345345345345345345345345345In…

TOOD Task-aligned One-stage Object Detection 论文学习

1. 解决了什么问题? 目标检测通过多任务学习的方式,协同优化目标的分类和定位。分类任务会学习目标的判别特征,关注于目标的显著性或关键区域,而定位任务则学习准确地定位目标的边界。因为定位和分类的学习机制不同,这…

Java调用ChatGPT(基于SpringBoot和Vue)实现连续对话、流式输出和自定义baseUrl

目录 版本更新说明1. 配置阶段1.1 依赖引入1.2 配置application.yml文件1.3 注解添加 2. 使用2.1 生成回答2.1.1 测试 2.2 生成图片2.2.1 测试 2.3 下载图片2.3.1 测试 2.4 生成流式回答2.4.1 流式回答输出到IDEA控制台2.4.2 流式回答输出到浏览器页面2.4.3 流式回答结合Vue输出…

Python TypeError: unsupported operand type(s) for +: ‘int‘ and ‘str‘

在键入数值进行相加运算时,报了这样一个错误 类型错误:不支持操作类型为整数和字符串 错误分析:sumsuminput() 未被系统识别,导致程序错误 解决方法:给键入的数值定义,声明为整数 sumsumint(input()) 即…