我想我误解了unity3d的层级系统

本文关键字:系统 unity3d 误解 | 更新日期: 2023-09-27 18:13:31

我有一个类叫做Enemy, Player和Gamemanager。我设置了我的Unity层次系统(在Unity的左侧,名称为"Hierarchy"),如下所示:

Enemy (1) 
Enemy (2) 
Enemy (3) 
Enemy (4) 
Enemy (5) 
Player (1) 
GameManager; 

但是当我把void Start () { Debug.Log(this);}(放在每个类上)我得到这个

Enemy (1) 
Enemy (5) 
Enemy (3) 
GameManager; 
Enemy (2)
Player (1) 
Enemy (4) 

给了什么?如果在加载对象时它不改变,那么层次系统的意义何在?当我做void Start (Debug.Log(this))的时候,我能得到第一个结果吗?

我想我误解了unity3d的层级系统

如果您遵循良好的编程实践,那么执行顺序应该无关紧要。

然而,有很多新手游戏开发者使用Unity,这也许可以解释为什么他们在项目设置中添加了脚本执行顺序。

默认情况下,Awake、OnEnable和Update功能不同脚本是按照脚本加载的顺序调用的任意的)。方法修改此顺序是可能的脚本执行令设置(菜单:编辑>项目设置>脚本执行顺序)

更多信息在这里:http://docs.unity3d.com/Manual/class-ScriptExecution.html