【Unity】 MonoBehavior生命周期图示
在Unity中只要运行的脚本都要继承MonoBehavior类,在MoniBehavior中的类执行顺序如下:
初始化方法
Reset
重置- 调用条件:在脚本第一次挂载时调用,在调试模式使用,初始化参数
- 调用次数:仅一次
- 常用作用:用于初始化属性,监视面板中的默认值
Awake
唤醒- 调用条件:在脚本被实例化时调用,仅调用一次,不管脚本设置为enable=true还是false。
- 调用次数:仅一次
- 常用作用:类似于构造函数进行初始化
OnEnable
启用- 调用条件:在脚本被启用后调用
- 调用次数:每一次重新启用脚本都会调用
- 常用作用:重复恢复成初始状态
Start
开始:- 调用条件:脚本第一次设置为enable=true且在Update类函数前调用。
- 调用次数:仅一次
- 常用作用:常用于数据或游戏逻辑初始化
更新
Update
更新:- 调用条件:脚本每一帧都会执行一次,一秒正常60帧,和电脑属性相关。
- 常用作用:常用于数据更新。
FixedUpdate
固定更新:- 调用条件:脚本启用后,固定时间被调用,
- 常用作用:适用于对游戏对象做物理操作,例如移动等。
- 设置更新频率:”Edit”—>”Project Setting”—>”Time”—>”Fixed Timestep”值,默认为0.02s。
LateUpdate
延迟更新:- 调用条件:和Update一样,在Update之后调用。
- 常用作用:常用于跟踪逻辑,比如第一人称视角跟随
碰撞检测
OnTriggerEnter(Collider)
碰撞触发开始:- 调用条件:当物体和另一个物体的碰撞体接触时执行(至少拥有一个刚体),只要有一个物体开启
isTrigger
- 常用作用:常用于跟踪逻辑,比如第一人称视角跟随
- 调用条件:当物体和另一个物体的碰撞体接触时执行(至少拥有一个刚体),只要有一个物体开启
OnTriggerStay(Collider)
碰撞触发 保持:- 调用条件:只要物体和另一个物体的碰撞体接触,每帧都会执行
- 常用作用:常用于跟踪逻辑,比如第一人称视角跟随
OnTriggerEnd(Collider)
碰撞触发结束:- 调用条件:当物体和另一个物体的碰撞体接触结束时执行。
- 常用作用:常用于跟踪逻辑,比如第一人称视角跟随
OnCollisionEnter(Collision)
碰撞触发开始:- 调用条件:当物体和另一个物体的碰撞体接触时执行(至少拥有一个刚体),两个物体都不启用
isTrigger
- 常用作用:常用于跟踪逻辑,比如第一人称视角跟随
- 调用条件:当物体和另一个物体的碰撞体接触时执行(至少拥有一个刚体),两个物体都不启用
OnCollisionStay(Collision)
碰撞触发 保持:- 调用条件:只要物体和另一个物体的碰撞体接触,每帧都会执行
- 常用作用:常用于跟踪逻辑,比如第一人称视角跟随
OnCollisionEnd(Collision)
碰撞触发结束:- 调用条件:当物体和另一个物体的碰撞体接触结束时执行。
- 常用作用:常用于跟踪逻辑,比如第一人称视角跟随
鼠标碰撞检测
OnMouseDown
- 调用条件:当用户在 Collider 上按下鼠标按钮时
- 常用作用:
OnMouseUp
- 调用条件:当按下鼠标抬起时调用,不管鼠标在不在Collider 上
- 常用作用:
OnMouseUpAsButton
- 调用条件:松开鼠标时,仅当鼠标在按下时所在的 Collider 上时
- 常用作用:
OnMouseDrag
- 调用条件:当用户单击 Collider 并仍然按住鼠标时
- 常用作用:
OnMouseEnter
- 调用条件:当鼠标移入 Collider 时调用
- 常用作用:
OnMouseExit
- 调用条件:当鼠标移出Collider时调用
- 常用作用:
OnMouseOver
- 调用条件:当鼠标悬停在 Collider 上时,每帧调用一次。
- 常用作用:
结束
OnDisable
停用:- 调用条件:当不可用,对象变为不可用和附属游戏对象非激活状态时调用此函数。与OnEnable()对应。
- 常用作用:常用于资源清理回收,对象状态重置
OnDestroy
销毁:- 调用条件:当销毁,当脚本销毁或附属游戏对象被销毁时调用。
- 常用作用:用于游戏物体的销毁
OnApplicatoinQuit
结束:- 调用条件:当程序结束,应用退出时调用,一般来保存一些游戏数据。
- 常用作用:处理游戏退出后的逻辑
本文来自博客园,作者:星空探险家,转载请注明原文链接:https://www.cnblogs.com/PuppetLazy/p/17840930.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库