Unity 脚本的生命周期

脚本的生命周期(MonoBehaviour Lifecycle)是Unity官方给出的术语。实际上我们可以简单地将它理解为,一个脚本的创建和销毁两个关键事件,以及在此过程中可能触发的各种事件。这里最关心的是所有事件的种类,以及它们的触发事件,因为脚本逻辑只有写在合适的事件里,且在合适的时机执行,在能恰到好处实现想要的功能。


理解脚本的生命周期

首先要确认,脚本虽然功能强大,但它毕竟是Unity的众多系统之一,完全受到引擎的管理。在脚本中可以编写各种功能,但什么时候脚本会被调用,完全由Unity决定。

以熟悉的Start方法和Update方法为例。当在组件脚本中写下Update方法时,就意味着向引擎"注册"了更新事件。当引擎对所有组件执行更新操作时,也会稍带着这个脚本组件。反过来说,如果没有定义Update方法,那么引擎在更新时,就会跳过这个脚本。

可以把引擎每一帧需要做的事,想象成在标准跑道上跑一圈。在跑一圈的过程中会有很多项常规工作,也有一些突发事件需要处理。引擎允许脚本订阅它所挂载物体的各类事件,并运行相应方法。这些事件的种类众多,大体上包括了初始化、物理计算、更新、渲染和析构等方面。

常见的事件方法

事件

说明

Awake

脚本被加载后调用,时机早于Start

Start

脚本可用的第一帧,正好在第一次Update之前调用

Update

每帧调用

LateUpdate

每帧调用,保证在所有的Update执行过后才执行

FixedUpdate

物理更新,会尽可能保证调用频率

OnCollisionEnter

碰撞开始事件

OnCollisionStay

碰撞持续中

OncollisionExit

结束碰撞

OnTriggerEnter

触发器开始事件

OnTriggerStay

触发持续

OnTriggerExit

触发器结束事件

OnParticleCollision

粒子碰撞时间,Unity的粒子系统也支持物理特性

OnParticleSystemStopped

粒子系统结束

OnParticleTrigger

粒子触发器事件

OnGUI

渲染与处理GUI事件时调用

OnEnable

物体被激活时调用

OnDisable

物体被禁用时调用

OnDestroy

销毁组件时调用

OnPreRender

即将渲染事件,某个摄像机渲染场景时调用

OnRenderObject

渲染事件,某个摄像机渲染场景时调用

OnPostRender

渲染事件后,某个摄像机结束渲染时调用

OnWillRenderObject

每个摄像机渲染非UI的可见物体时调用

OnPreCull

摄像机进行可见性裁剪之前使用

OnTransformChildrenChanged

物体的子物体发生变化时调用

OnTransformParentChanged

物体的父物体发生变化时调用

OnApplicationFocus

Game窗口失去或获得焦点时调用

OnApplicationPause

游戏被暂停时调用

OnApplicationQuit

游戏退出时调用

OnBecameVisible

物体变得可见时调用

OnBecameInvisible

物体变得不可见时调用

OnMouseDown

鼠标在UI元或碰撞体上摁下时调用

OnMouseDrag

鼠标在UI元或碰撞体上持续摁下时调用

OnMouseEnter

鼠标进入UI元素或碰撞体范围时调用

OnMouseExit

鼠标离开UI元素或碰撞体范围时调用

OnMouseOver

鼠标在UI元素u或碰撞体范围内时,每帧调用

OnMouseUp

用户放开鼠标键时调用

OnMouseUpAsButton

用户在同一个UI元素或碰撞体上,松开鼠标按键时调用

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七七喝椰奶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值