搞清楚脚本中这些函数的调用规律
2014-08-13 17:18
309 查看
关于游戏中游戏对象是否处于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
基本上可以有四种情况:
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
相关文章推荐
- 搞清楚脚本中这些函数的调用规律
- 【转】搞清楚脚本中这些函数的调用规律
- 搞清楚脚本中这些函数的调用规律 .
- shell的一些常用的语句(if语句,变量,for、while、until语句、函数调用、脚本调用)
- 使用system()函数调用Linux脚本
- C调用Python脚本文件里的函数(转)
- C调用Python脚本文件里的函数
- PHP - Manual手册 - XLVII. Function Handling Functions函数管理函数 - register_shutdown_function注册一个脚本结束时调用的函数
- 用脚本C调用Python脚本文件里的函数
- 使用system()函数调用Linux脚本
- [Lua脚本实践2]LuaPlus中关于函数的调用
- Unity--在C#脚本中调用JS脚本函数并传参
- 脚本语言间的函数调用
- (如何在C++代码中调用Lua脚本的函数?)
- C调用Python脚本文件里的函数
- shell脚本中函数调用的返回值,以及退出状态问题
- Winrunner中的脚本和函数调用
- robot脚本__调用自定义函数
- 同一脚本中的函数和调用
- DllMain中不当操作导致死锁问题的分析--进程对DllMain函数的调用规律的研究和分析