选择awake和Start的初始化区别

由来: 在匆匆找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()方法                         经常干

时间: 2024-11-08 21:04:30

选择awake和Start的初始化区别的相关文章

背包恰好装满和不必装满的初始化区别

背包恰好装满和不必装满的初始化区别 1.4 初始化的细节问题我们看到的求最优解的背包问题题目中,事实上有两种不太相同的问法.有的题目要求"恰好装满背包"时的最优解,有的题目则并没有要求必须把背包装满.一种区别这两种问法的实现方法是在初始化的时候有所不同. 如果是第一种问法,要求恰好装满背包,那么在初始化时除了 F [0] 为 0,其它F [1::V ] 均设为 ?1,这样就可以保证最终得到的 F [V ] 是一种恰好装满背包的最优解. 如果并没有要求必须把背包装满,而是只希望价格尽量大

TEXT、TINYTEXT、MEDIUMTEXT、LONGTEXT选择 和 char varchar varchar2 的区别

TEXT.TINYTEXT.MEDIUMTEXT.LONGTEXT选择: 储存不区分大小写的字符数据 TINYTEXT 最大长度是 255 (2^8 - 1) 个字符. TEXT 最大长度是 65535 (2^16 - 1) 个字符. MEDIUMTEXT 最大长度是 16777215 (2^24 - 1) 个字符. LONGTEXT 最大长度是 4294967295 (2^32 - 1) 个字符 char varchar varchar2 的区别: 区别: 1.CHAR的长度是固定的,而VAR

Unity3D脚本中的Awake()和Start()的本质区别

昨天被问到一个问题MonoBehaviour的Awake()和Start()的区别是啥? 当然Awake()会在Start()之前被调用,这个地球人都知道了.如果只是顺序问题,那当然就没太大必要搞两个函数了.仔细研究了一下API文档: Awake():Awake is called when the script instance is being loaded. Start():Start is called on the frame when a script is enabled just

数组 在 c++, java, c#中的 定义、初始化 区别 中括号的位置

来自"http://www.cnblogs.com/Yogurshine/archive/2012/12/29/2839238.html" (1)Java 一维数组 1) int[] a; //声明,没有初始化 2) int[] a=new int[5]; //初始化为默认值,int型为0 3) int[] a={1,2,3,4,5}; //初始化为给定值 4) int[] a=new int[]{1,2,3,4,5}; //同(3) int[] a=new int[5]{1,2,3,

关于jQuery表单选择中prop和attr的区别。

今天用jQuery学习表单这一章节的内容,再次遇到表单全选时,不能进行第二次全选的情况.反复查看测试仍然找不到是什么原因.后来在网上查到原来是jQuery1.6以后的版本用到的是prop.用attr的话不会多次实现,因为attr不会记录当前checkbox的选中状态. 表单这一章节内容让我感觉到有点吃力,总之好好努力吧! 以下是代码说明: <!DOCTYPE html> <html lang="en"> <head> <meta charset

Unity中Awake和Start的区别

正式开始学习Unity了.当然,第一个遇到的问题就是Awake和Start的问题,之前在网上查过一下这两者的区别,简单记忆了一下,认为自己知道了两者的区别.不过实际用起来,发现对于这两者到底是什么区别,心里还是没底,而且最关键的是木有Unityt的源代码,所以我们只能是通过文档或者是别人的blog来了解,当然,还有一个办法就是自己做一下实验,实践是检验真理的唯一标准. 一.官方解释 先来看看Unity官方对于这两个函数的解释: Awake is called when the script in

构造函数初始化

参考:c++ primer p385 构造函数的名字与类的名字相同,且不能返回指定类型 构造函数可以被重载,只要构造函数的形参表是唯一的 构造函数初始化有两种方式,一种是使用初始化列表,一种是在构造函数的函数体内对数据成员赋值 初始化列表: 构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式: Sales_item::Sales_item(const string &book): isbn(book), units_sold(0), re

6.Java一维数组的声明、初始化和引用

一维数组的声明 使用一个数据时,必须要对其进行声明,这个道理对于数组来说也一样,数组在使用之前也必须先声明.先看下面的代码,是如何声明一个变量的.     int a; 仔细分析一下:int 是指变量的数据类型,a 是指变量名,由变量的声明可以联系到数组的声明.     int a[]; 仔细分析一下:int 是指数组中所有数据的数据类型,也可以说是这个数组的数据类型,a[]表示数组名. 基本类型数组的声明有几种形式:     int a[];     int[] a; 这两种形式没有区别,使用

010商城项目:商品类目的选择——Dao,Service.Action层的分析

我们现在开始写商品类选择这个功能: 先看效果: 当我们点击"新增商品"---->"选择目录"然后从数据库中查出来数据并显示了. 我们分析数据库的那张表: 它是一个树形结构: 如下: 这是整个表的数据. 我们写一条sql查询语句: 查出来的是最顶层的目录. 我们再根据其中一条数据的id来查他的下面的目录: 比如查id=74的数据 查出来的就是家电数据. 我们在查大家电下面的数据: 所以整个表就是一课数. 我们看怎么实现: 页面上我们使用Easyui的tree结构