孙广东 2015.5.16
我们都知道Unity管理GameObject是采用树形结构就是在Hierarchy面板中的结构。但是具体是怎么管理组件的呢?
同事的测试发现了这个现象:
测试如下:在U5中,先新建一个Button。
添加一个脚本,处理单击按钮的响应:
using UnityEngine; using UnityEngine.UI; using System.Collections; public class TestComponent : MonoBehaviour { public void OnClick() { var text = FindObjectOfType (typeof(Text)) as Text; Debug.Log ("现在是: " + text.transform.parent.gameObject.name); Destroy (text); } }
运行程序,然后单击看看Log 输出
然后我们在创建一个Button,
对于这个输出,就要有疑问了, 为社么输出的顺序是 Button2--》Button1呢?
那就调整一下 Hierarchy面板的顺序
结果是一样的,所以。 unity对这些组件的管理更像是栈Stack结构存储: 【后进先出】
每当新建一个GameObject后,unity会自动将游戏对象上的组件进行分类,然后将其分别放在各自的Stack中。Unity对每个组件都维护一个Stack。
时间: 2024-10-13 09:56:56