【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中编写代码了
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中编写代码了
相关文章推荐
- Unity3D -- 质量设置(Quality Settings)
- Unity3D 处于Camera跟随游戏对象后面拍摄的方法
- Unity& leapmotion开发实录
- Unity给力插件之LittleLocalization
- 【转】【UNITY3D 游戏开发之六】UNITY 协程COROUTINE与INVOKE
- Unity触发器有时失效的原因
- unity让物体鼠标平滑移动物体
- Unity中使用SLua的一些注意事项
- Unity中的输入
- Unity3D关于刚体(RigidBody)与碰撞体(Collider)的探索(二)
- unity编辑器学习
- 怎样实现一个潮流的开关按钮
- Unity的UGUI中使用CustomFont(BMFont)
- 【unity插件】BehaviourDesigner行为树插件
- Unity3D -- 自定义范围截屏
- Shader 学习笔记 20151121
- Unity 延迟执行一段代码的较为优雅的方式
- Unity 延迟执行一段代码的较为优雅的方式
- Unity5 AssetBundle
- Unity各种路径获取