IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]Unity3D对Component组件的管理机制

    u010019717发表于 2015-05-18 08:35:33
    love 0

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






沪ICP备19023445号-2号
友情链接