Unity生命周期函数相关

影响生命周期函数执行的因素:1.脚本自身的开启关闭状态 2.脚本所挂载物体的开启关闭状态

以下结论仅在编辑器环境测试得出

特别的是:
1.在脚本关闭时,依旧会执行Awake(),OnDestroy(),OnApplicationQuit()
2.在退出程序时,OnApplicationQuit()在OnDestroy()之前调用
3.在退出程序时,物体关闭的OnApplicationQuit()不会执行
4.Start()在第一次Update()执行前执行
5.这里的物体开启关闭指的都是activeInHierarchy
6.当物体和脚本都开启时,先执行一个物体的Awake和OnEnable再执行另一个,然后才是Start

6

函数注释含义写的很准确,可以仔细理解。

可以认为Unity内部在监听物体挂载的生命周期函数,当物体激活时,一些函数[Awake/OnApplicationQuit/OnDestroy]会被加入监听,这时即使关闭脚本,甚至关闭物体,监听依然存在。而一些函数(Start/Enable/Update)还依赖脚本的开启状态。

Awake()

OnEnable()

OnDisable()

Start()

OnDestroy()

OnApplicationQuit()

应用程序退出前发送给所有游戏对象(所有激活的游戏对象,未激活不执行)