接下来,做出一下讲解:最先执行的方法是Awake,这是生命周期的开始,用于进行激活时的初始化代码,一般可以在这个地方将当前脚本禁用:this.enable=false,如果这样做了,则会直接跳转到OnDisable方法执行一次,然后其它的任何方法,都将不再被执行。

如果当前脚本处于可用状态,则正常的执行顺序是继续向下执行OnEnable,当然我们可以在另外一个脚本中实现这个脚本组件的启动:this.enab=true;

再向下执行,会进行一个判断,如果Start方法还没有被执行,则会被执行一次,如果已经被执行了,则不会再被执行。这是个什么意思呢?我们可以在某个脚本中将组件禁用this.enable=false,再启用时会转到OnEnable处执行,这时继续向下走,发现Start执行过了,将不再被执行。比如说:第一次启用时,将怪物的初始位置定在了(0,0,0)点,然后怪物可能会发生了位置的变换,后来被禁用了,再次启用时,不会让怪物又回到初始的(0,0,0)位置。

继续向后执行,就是Update了,然后是FixUpdate,再然后是LateUpdate,如果后面写了Reset,则会又回到Update,在这4个事件间可以进行循环流动。

再向后执行,就进入了渲染模块(Rendering),非常重要的一个方法就是OnGUI,用于绘制图形界面。当然,如果你使用了NGUI,这个生命周期的事情你就不用考虑了。

再向后,就是卸载模块(TearDown),这里主要有两个方法OnDisable与OnDestroy。当被禁用(enable=false)时,会执行OnDisable方法,但是这个时候,脚本并不会被销毁,在这个状态下,可以重新回到OnEnable状态(enable=true)。当手动销毁或附属的游戏对象被销毁时,OnDestroy才会被执行,当前脚本的生命周期结束。

转自:http://blog.csdn.net/qitian67/article/details/18516503

原文:http://www.richardfine.co.uk/2012/10/unity3d-monobehaviour-lifecycle/

最新文章

  1. coocs2d-x 分辨率
  2. HDU 2296 Ring -----------AC自动机,其实我想说的是怎么快速打印字典序最小的路径
  3. 如何在MFC中创建非矩形button
  4. 线程安全、数据同步之 synchronized 与 Lock
  5. android xml 布局错误(黑掉了)Missing styles. Is the correct theme chosen for this layout?
  6. CSS3的chapter3
  7. Socket常见错误
  8. [摘录]quarts:feature
  9. POJ3928、LA4329【树状数组】
  10. [水题]ZOJ3038 Triangle War II
  11. JBPM学习(四):执行流程实例
  12. poj 3620 Avoid The Lakes【简单dfs】
  13. 【抽屉定理】 组合数学poj2356
  14. leetcode刷题七<整数反转>
  15. Python3+Scapy安装使用教程
  16. Python(字符编码)
  17. Bullet物理引擎的安装与使用
  18. 翻硬币|2013年蓝桥杯B组题解析第八题-fishers
  19. Swing使用Substance外观包异常问题
  20. 安装linux版zabbix客户端

热门文章

  1. ZOJ Problem Set - 3758 素数
  2. 使用Jquery解析Json基础知识(转)
  3. leetcode 最大矩形和
  4. Bzoj 1222: [HNOI2001]产品加工 动态规划
  5. 关于ATL的rgs注册文件
  6. Self-numbers 2 - SGU 108
  7. Python读写文件需要注意的地方 2015-03-31 23:19 69人阅读 评论(0) 收藏
  8. strace使用详解(转) 分类: shell ubuntu 2014-11-27 17:48 134人阅读 评论(0) 收藏
  9. android 49 广播接收者中启动其他组件
  10. 移动web设计稿尺寸,关于移动web尺寸的那点事