您的位置:首页 > 移动开发 > Unity3D

【Unity常识】游戏对象及脚本的状态与Start等函数的调用关系

2015-11-22 23:43 776 查看
通常调用关系有以下4种:

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会接着被调用。

需要注意的是:

1.Awake和Start在一个游戏物体的生命周期中只调用一次,但是OnEnable会在每次激活脚本的时候再次执行。如在游戏中先创建一个物体,激活其脚本,则此时Awake
OnEnable Start 会调用,将一个脚本的enabled设为false则其OnDisable会被调用,再次激活时OnEnable又会被调用可Awake 和 Start 则不会再调用。

2.注意将一个游戏对象SetActive(false)时其绑定的脚本以及子脚本中的OnDisable也会被调用,SetActive(true)时会调用OnEnable。这可以解释为什么在为一个游戏对象订阅和移除事件委托时要分别在其OnEnable和
OnDisable OnDestroy中编写代码了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: