unity生命周期

unity的生命周期

都是有序的

1. 实例化与初始化阶段

Awake()

调用时机:当脚本实例被载入时调用,在场景加载时,每个对象的脚本实例创建后立即执行,无论脚本是否启用

用途:常用于进行基本的初始化操作,如变量赋值、查找组件引用等,因为此时所有对象的脚本实例都已创建,适合建立对象间的初始关联。

OnEnable()

调用时机:在对象被启用或者脚本被激活时调用 。如果对象在场景加载时就处于启用状态,会在 Awake 之后立即调用;若对象在运行时被禁用后又重新启用 ,此方法也会再次被调用。

用途:适合执行需要在对象启用时进行的操作,例如重置状态、订阅事件等。

2. 开始与更新阶段

Start()

调用时机:仅在脚本实例启用后的第一帧调用,且只会调用一次,在 Awake 和 OnEnable 之后执行

用途:常用于那些依赖于其他对象初始化完成的操作,因为此时场景中所有对象的 Awake 和 OnEnable 方法都已执行完毕。

FixedUpdate()

调用时机:以固定的时间间隔被调用,其调用频率由 Time.fixedDeltaTime 决定,默认值为 0.02 秒(即每秒 50 次)。它与帧率无关,适合进行物理模拟相关的操作。

用途:常用于处理物理计算,如刚体的移动、力的施加等,确保物理模拟的稳定性。

Update()

调用时机:每帧调用一次,其调用频率取决于游戏的帧率。帧率越高,Update 方法被调用的次数就越多。

用途:用于处理游戏中的常规逻辑,如玩家输入处理、对象的移动和旋转等。

LateUpdate()

调用时机:在 Update 方法调用之后的每帧调用。这意味着它会在所有 Update 方法执行完毕后才执行。

用途:常用于处理那些依赖于 Update 中对象状态变化的操作,例如相机跟随玩家角色,确保相机在玩家移动后再进行位置更新。

3. 渲染阶段

OnPreCull()

调用时机:在相机剔除场景中的对象之前调用。剔除 是指相机决定哪些对象在视野范围内,哪些对象不在视野范围内的过程

用途:可用于在相机剔除对象之前对场景进行一些预处理,如动态调整对象的渲染状态。

OnBecameVisible() 和 OnBecameInvisible()

调用时机:当对象对任何相机变得可见或不可见时分别调用。

用途:可以用于优化性能,例如当对象不可见时停止某些不必要的计算或动画。

OnWillRenderObject()

调用时机:当对象即将被渲染时,也就是在经过相机剔除确定对象处于视野范围内(不包括被Setactive.false的对象 ),且即将开始对该对象进行实际渲染操作之前,OnWillRenderObject() 会被调用。每个相机渲染该对象时都会触发此方法 ,可用于在对象渲染前进行特殊的渲染设置或效果处理。

用途:可用于在对象渲染前进行一些特殊的渲染设置或效果处理。

OnRenderObject()

调用时机:在所有常规渲染完成后调用,允许手动渲染自定义的图形或效果。

用途:用于实现自定义的渲染逻辑,如绘制额外的线条、图形等。

OnPostRender()

调用时机:在相机完成渲染后调用

用途:可用于在相机渲染完成后进行一些后处理操作,如添加屏幕特效。

4. 销毁阶段

OnDisable()

调用时机:当对象被禁用或者脚本被停用(如脚本组件被取消勾选)时调用。

用途:常用于执行一些清理操作,如取消订阅事件、释放资源等。

OnDestroy()

调用时机:当脚本实例即将被销毁时调用,例如当对象被删除或场景被卸载时。

用途:用于进行最后的清理工作,确保释放所有占用的资源

相关推荐
枯萎穿心攻击5 小时前
从 Unity UGUI 到 Unreal UMG 的交互与高效实践:UI 事件、坐标系适配与性能优化
开发语言·ui·unity·性能优化·ue5·游戏引擎·虚幻引擎
SmalBox20 小时前
【渲染流水线】[逐片元阶段]-[深度测试]以UnityURP为例
unity·渲染
观熵1 天前
Android 相机系统全景架构图解
android·数码相机·架构·camera·影像
一起搞IT吧1 天前
高通Camx hal进程CSLAcquireDeviceHW crash问题分析一:CAM-ICP FW response timeout导致
android·图像处理·数码相机
Thomas_YXQ2 天前
Unity3D编辑器扩展-物体批量替换设置材质
游戏·unity·编辑器·游戏引擎·材质
雪下的新火2 天前
Unity-HDRP场景搭建-那山
经验分享·笔记·unity·游戏引擎·场景搭建
格林威2 天前
Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型和EasyOCR实现汽车牌照动态检测和识别(C#代码,UI界面版)
人工智能·深度学习·数码相机·yolo·c#·汽车·视觉检测
8K超高清2 天前
广播级讯道摄像机CCU后挂上的PGM、ENG、PROD音频旋钮是做什么用的?
大数据·人工智能·科技·数码相机·音视频·智能硬件
郝学胜-神的一滴2 天前
深度解析游戏引擎中的相机:视图矩阵
程序人生·unity·矩阵·游戏引擎·godot·图形渲染·虚幻