首页 > 编程语言 > 详细

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

时间:2015-12-09 23:09:41      阅读:367      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!