码迷,mamicode.com
首页 > 编程语言 > 详细

Unity脚本在层级面板中的执行顺序测试2

时间:2015-12-09 23:12:39      阅读:596      评论:0      收藏:0      [点我收藏+]

标签:

上一篇测试了生成顺序对执行顺序的影响,链接:LINK

 

这篇主要测试一下Awake,OnEnable,Start三个常用消息的循环顺序

 

 

 


 

先上一个最简单的打印测试代码

技术分享
void Awake()
    {
        Debug.Log("Awake" + name);
    }

    void OnEnable()
    {
        Debug.Log("OnEnable" + name);
    }

    void Start()
    {
        Debug.Log("Start" + name);
    }
Print Message

技术分享

测试结果为Awake和OnEnable在第一次循环中,Start在第二次循环中

 

 

然后测试一下动态创建时的顺序

技术分享
public TMP template;

void Start()
{
    var go = Instantiate(template.gameObject);
    print("--Creater Modify--");
    go.SetActive(true);
}
Dynamic Create

技术分享

Awake和OnEnable优先被调用,连在此之前调用初始化的机会都没有。

 

 

不过也有解决方法,将Prefab保存为非激活状态,并在初始化后激活即可:

技术分享

 

技术分享

 

Unity脚本在层级面板中的执行顺序测试2

标签:

原文地址:http://www.cnblogs.com/hont/p/5034419.html

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