FairyGUI UIPanel看不到显示UI的Mesh和贴图的问题

来源:互联网 发布:音乐剪切软件 编辑:程序博客网 时间:2024/06/05 06:22

初学FairyGUI,看例子,FairyGUI在Editor中显示UI的时候是先选择Package名,在选择Component名,然后在场景里面就可以显示包里面的组件,这时就有一个问题,底层到底做了什么使得UIPanel能够显示Mesh和贴图?

看了FairyGUI源代码,发现在编辑器模式下,FairyGUI在UIPanel的代码里做了如下事情:

    void CreateUI_EditMode()        {            if (!EMRenderSupport.packageListReady || UIPackage.GetByName(packageName) == null)                return;#if UNITY_5            UIObjectFactory.packageItemExtensions.Clear();            UIObjectFactory.loaderConstructor = null;            DisplayOptions.SetEditModeHideFlags();            _ui = (GComponent)UIPackage.CreateObject(packageName, componentName);            if (_ui != null)            {                _ui.displayObject.gameObject.hideFlags |= HideFlags.HideInHierarchy;                _ui.gameObjectName = "UI(AutoGenerated)";                ....            }        }

这里命名了一个GO叫UI(AutoGenerated)然后通过hideFlags来控制改物体为隐藏。刚开始没看FairyGUI源码的时候觉得好神奇,这里明明什么都没有,在场景里面却可以显示该UI的Mesh和贴图。如果把设置hideFlags那一行去掉可以看到,场景里面UIPanel物体下面有一个物体名字叫UI(AutoGenerated),只是通过设置改flag设置为了隐藏而已。所以不必神奇和惊慌。

0 0
原创粉丝点击