Unity3D对Component组件的管理机制

时间:2015-05-18 08:58:16   收藏:0   阅读:158

孙广东 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。


技术分享


评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!