码迷,mamicode.com
首页 > 编程语言 > 详细

Unity3D对Component组件的管理机制

时间:2015-05-18 08:58:16      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:canvas   3d   unity3d   

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


技术分享


Unity3D对Component组件的管理机制

标签:canvas   3d   unity3d   

原文地址:http://blog.csdn.net/u010019717/article/details/45789441

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!