我想我误解了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))
的时候,我能得到第一个结果吗?
如果您遵循良好的编程实践,那么执行顺序应该无关紧要。
然而,有很多新手游戏开发者使用Unity,这也许可以解释为什么他们在项目设置中添加了脚本执行顺序。
默认情况下,Awake、OnEnable和Update功能不同脚本是按照脚本加载的顺序调用的任意的)。方法修改此顺序是可能的脚本执行令设置(菜单:编辑>项目设置>脚本执行顺序)
更多信息在这里:http://docs.unity3d.com/Manual/class-ScriptExecution.html