码迷,mamicode.com
首页 > 其他好文 > 详细

选择awake和Start的初始化区别

时间:2015-02-28 14:31:31      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

由来: 在匆匆找Unity工作的时候, 考官问我一般写初始化值的时候, 你写在那个方法里面!
我心中一直出现awake和Start,于是我想说awake方法. 但是我不会读。。。。我问他能不能写出来
他还是答应了我的要求,我就快乐的写在纸上给了他。 经过一轮探讨他就叫我回家等通知吧。

技术分享

 

前提: 先不谈论awake方法可以调解他的执行时间!
   
GameObject是一个树形结构,从上到下, 先从最根的组件awake方法以此向下执行,之后同理在执行Start方法.并不是执行完一个Awake,Start 在执行另一个组件的Awake,Start方法

结论:
    1. 1个GameObject不需要其他GameObject上面的组件属性来初始化, 你选择Awake 或者 Start 都没问题.
        (首选Awake,在Awake()中写上这句代码 组件.Enable = false;  Start就能暂停了)
   
    2. 两个Gameobject上的组件(A,B)  A是B的父节点,A B是组件, A需要引用B的属性来初始化
        A在Awake初始化,B在Awake初始化.  报错
        A在Start初始化,B在Start初始化.        报错
        A在Start初始化,B在Awake初始化.     成功

       
    3. 组件给自己属性初始化,一定在Awake()里面, 需要调用其他组件来初始化或完成某行为,应该写在Start()
   
   
几种属性初始化选择:
    属性 = new 类名();            经常干
    构造方法                          没看过这样干的
    awake()方法                      经常干
    start()方法                         经常干

选择awake和Start的初始化区别

标签:

原文地址:http://www.cnblogs.com/plateFace/p/4305310.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!