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),并发送到某个地方

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

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

相关文章

vue项目启动npm run serve常见报错及解决办法

报错1: 如图: 解决方法:重新安装core-js , npm i core-js 报错2: Syntax Error: EslintPluginImportResolveError: unable to load resolver “alias”. 解决方法:npm install eslint-import-resolver-alias -D 报…

【数据结构和算法15】二叉树的实现

二叉树是这么一种树状结构:每个节点最多有两个孩子,左孩子和右孩子 重要的二叉树结构 完全二叉树(complete binary tree)是一种二叉树结构,除最后一层以外,每一层都必须填满,填充时要遵从先左后…

配置SQL提示

问题描述 SpringBoot工程中:使用Select注入的时候没有提示 例如: 在正常情况下: 在没有配置SQL提示的时候: 原因分析: 没有进行SQL配置 解决方案: 选中Select注入中的SQL语句,使用IDEA中的快…

自学网络安全(黑客)的误区

前言 网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。 一、网络安全学习的误区 1.不要…

Vite 4.4 正式版发布,全面拥抱 Lightning CSS

一、什么是 Vite Vite 是由 Evan You 推出的下一代前端构建工具,是官方 Vue CLI 的替代品,速度非常快。Vite 利用原生 ESM 并使用 Rollup 处理开发和打包工作。 从功能上讲,它的工作方式类似于预配置的 webpack 和 webpack-dev-server,但在速度方面具有无可比拟的优势。 …

elasticsearch报错问题

标题1.报错问题 标题2.新建一个配置类 package cn.itcast.hotel.config;import org.apache.http.HttpHost; import org.apache.http.client.config.RequestConfig; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestClientBuilder; import o…

redis 1

shell 1:安装1. 源码安装(CENTOS) 2.999:可能会出现得问题1. 编译出错 1:安装 1. 源码安装(CENTOS) 官方下载源码包 wget https://download.redis.io/redis-stable.tar.gz # 安装依赖 yum install gcc解压…

前端学习——ajax (Day4)

同步代码和异步代码 回调函数地狱和 Promise 链式调用 回调函数地狱 Promise - 链式调用 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge&quo…

【Linux命令200例】cmp文件比较工具

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

Tangible Software Solutions Crack

Tangible Software Solutions Crack 有形软件解决方案-最准确可靠的源代码转换器&#xff0c;在VB.NET、C#、Java、C和Python之间进行转换&#xff0c;同时节省了无数小时的艰苦工作和宝贵的时间。 主要优点&#xff1a; 节省宝贵时间 准确全面 安全-您的代码永远不会离开您的机…

HTML中的焦点管理

前言 焦点作为页面交互中的重要一环&#xff0c;涉及到的知识点也比较多&#xff0c;有必要做一个统一的总结。 HTML 中的可获取焦点的元素 具有 href 属性的 HTMLAnchorElement/HTMLAreaElement非禁用态的 HTMLInputElement/HTMLSelectElement/HTMLTextAreaElement/HTMLBut…

《零基础入门学习Python》第063讲:论一只爬虫的自我修养11:Scrapy框架之初窥门径

上一节课我们好不容易装好了 Scrapy&#xff0c;今天我们就来学习如何用好它&#xff0c;有些同学可能会有些疑惑&#xff0c;既然我们懂得了Python编写爬虫的技巧&#xff0c;那要这个所谓的爬虫框架又有什么用呢&#xff1f;其实啊&#xff0c;你懂得Python写爬虫的代码&…

RocketMQ教程-(5)-功能特性-顺序消息

顺序消息为 Apache RocketMQ 中的高级特性消息&#xff0c;本文为您介绍顺序消息的应用场景、功能原理、使用限制、使用方法和使用建议。 应用场景​ 在有序事件处理、撮合交易、数据实时增量同步等场景下&#xff0c;异构系统间需要维持强一致的状态同步&#xff0c;上游的事…

JavaWeb银行项目

主要功能 实现了贷款、存款、理财、提现、充值、开户、绑卡、转账等功能。 介绍 1、这个是一个类似有支付宝一样的web项目。 2、登录和注册&#xff0c;都是通过手机号来进行的。 3、注册的新用户需要先进行开户操作&#xff0c;然后进行绑卡操作。 4、在开户的时候回给你…

Linux 学习记录57(ARM篇)

Linux 学习记录57(ARM篇) 本文目录 Linux 学习记录57(ARM篇)一、外部中断1. 概念2. 流程图框 二、相关寄存器1. GIC CPU Interface (GICC)2. GIC distributor (GICD)3. EXTI registers 三、EXTI 寄存器1. 概述2. 内部框图3. 寄存器功能描述4. EXTI选择框图5. EXTI_EXTICR1 &…

金融中的数学:贝叶斯公式

1.贝叶斯定理 贝叶斯定理是概率论中的一项重要定理&#xff0c;用于在已知某一事件的条件下&#xff0c;求另一事件发生的概率。它是根据条件概率推导出来的&#xff0c;得名于英国数学家托马斯贝叶斯。 贝叶斯定理可以表示为&#xff1a; 这个式子就是贝叶斯公式&#xff0c…

Hadoop 之 Spark 配置与使用(五)

Hadoop 之 Spark 配置与使用 一.Spark 配置1.Spark 下载2.单机测试环境配置3.集群配置 二.Java 访问 Spark1.Pom 依赖2.测试代码1.计算 π 三.Spark 配置 Hadoop1.配置 Hadoop2.测试代码1.统计字符数 一.Spark 配置 环境说明环境版本AnolisAnolis OS release 8.6Jdkjava versi…

Docker系列 1 - 镜像和容器

Docker系列 1 - 镜像和容器 1、关于 Docker2、镜像 image3、容器 container 1、关于 Docker docker官网&#xff1a;http://www.docker.com docker中文网站&#xff1a;https://www.docker-cn.com/ Docker Hub 仓库官网: https://hub.docker.com/ Docker 的基本组成&#…

Okhttp-LoggingInterceptor的简单使用

概述 Okhttp除了提供强大的get,post网络请求外&#xff0c;还包含请求日志的拦截器&#xff0c;可以监视&#xff0c;重写&#xff0c;重试调用请求。 简单使用 我们在构造OkHttpClient时&#xff0c;通过addInterceptor()方法添加我们需要的过滤器。 object OkhttpUtils{……

十二、数据结构——二叉树基本概念及特点

数据结构中的二叉树 目录 一、二叉树的基本概念 二、二叉树的特点 三、二叉树的分类 四、二叉树的存储结构 (一)、顺序存储 (二)、链式存储 一、二叉树的基本概念 二叉树是一种重要的数据结构&#xff0c;它是每个节点最多有两个子节点的树结构。在二叉树中&#xff0c;每个…