搞清楚脚本中这些函数的调用规律

关于游戏中游戏对象是否处于active或者脚本是否为enabled 时 Start和Awake函数的调用
基本上可以有四种情况:
1.game object 为active 但是脚本为disabled
此时当对象被创建时只有Awake函数会被立刻调用,OnEnable和 Start 会在Enabled脚本后调用。
2.game object 为deactive但是脚本为enabled
此时当对象被创建时不会有函数被调用,当active物体之后会按照Awake OnEnable Start 顺序调用函数。
3.game object 为avtive且脚本为enabled
此时当对象被创建时会按照Awake OnEnable Start顺序执行函数。
4.game object 为deactive且脚本为disabled
此时创建对象不会有函数调用,当active物体之后Awake函数会立即调用,enabled脚本后OnEnable和Start会接着被调用。
 
需要注意的是Awake和Start在一个游戏物体的生命周期中只调用一次,但是OnEnable会在每次激活脚本的时候再次执行。
如在游戏中先创建一个物体,激活其脚本,则此时Awake OnEnable Start 会调用,将一个脚本的enabled设为false则其OnDisable会被调用
,再次激活时OnEnable又会被调用可Awake 和 Start 则不会再调用。注意将一个游戏对象SetActive(false)时其绑定的脚本以及子脚本中的OnDisable也
会被调用,SetActive(true)时会调用OnEnable。这可以解释为什么在为一个游戏对象订阅和移除事件委托时要分别在其OnEnable和 OnDisable OnDestroy中编写代码了
, 以前还真没看懂这点。
 
demo.unitypackage
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值