private void GroupLoadItems(UIInfoBase[] infoList)
        {
            for (int i = 0; i < infoList.Length; i++)
            {
                UIInfoBase item   = infoList[i];
                GameObject prefab = null;
                if (item is PrefabUIInfo)
                {
                    prefab = (item as PrefabUIInfo).prefab;
                }
                else if (item is BundleUIInfo)
                {
                    var guid = (item as BundleUIInfo).guid;
                    var path = AssetDatabase.GUIDToAssetPath(guid);
                    prefab = AssetDatabase.LoadAssetAtPath <GameObject>(path);
                }

                if (item.instanceID != 0)
                {
                    continue;
                }


                if (prefab == null)
                {
                    UnityEditor.EditorUtility.DisplayDialog("空对象", "找不到预制体" + item.panelName, "确认");
                }
                else
                {
                    GameObject go = PrefabUtility.InstantiatePrefab(prefab) as GameObject;
                    if (target is PanelGroup)
                    {
                        if (go.GetComponent <Transform>() is RectTransform)
                        {
                            go.transform.SetParent((target as PanelGroup).transform, false);
                        }
                        else
                        {
                            go.transform.SetParent((target as PanelGroup).transform, true);
                        }
                    }
                    else
                    {
                        if (go.GetComponent <Transform>() is RectTransform)
                        {
                            var canvas = UnityEngine.Object.FindObjectOfType <Canvas>();
                            go.transform.SetParent(canvas.transform, false);
                        }
                        else
                        {
                            go.transform.SetParent(null);
                        }
                    }

                    item.instanceID = go.GetInstanceID();
                }
            }
        }
        /// <summary>
        /// 创建对象
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="panelName"></param>
        /// <param name="onCreate"></param>
        public void CreatePanel(UIInfoBase itemInfo, UnityEngine.Events.UnityAction <GameObject> onCreate)
        {
            if (_cansaleKeys.Contains(itemInfo.panelName))
            {
                _cansaleKeys.RemoveAll(x => x == itemInfo.panelName);
            }

            if (!_loadingKeys.Contains(itemInfo.IDName))
            {
                _loadingKeys.Add(itemInfo.IDName);
                var bInfo = itemInfo as BundleUIInfo;
                var pInfo = itemInfo as PrefabUIInfo;
                var rInfo = itemInfo as ResourceUIInfo;

                if (pInfo != null)
                {
                    var go = GetGameObjectInfo(pInfo);
                    if (onCreate != null)
                    {
                        onCreate.Invoke(go);
                    }
                }
                else if (rInfo != null)
                {
                    var go = GetGameObjectInfo(rInfo);
                    if (onCreate != null)
                    {
                        onCreate.Invoke(go);
                    }
                }
                else if (bInfo != null)
                {
                    if (bundleLoader != null)
                    {
                        bundleLoader.LoadAssetAsync <GameObject>(bInfo.bundleName, bInfo.panelName, (x) => {
                            if (x != null)
                            {
                                var instence = CreateInstance(x, bInfo);
                                if (onCreate != null)
                                {
                                    onCreate.Invoke(instence);
                                }
                                _loadingKeys.Remove(bInfo.IDName);
                            }
                        });
                    }
                    else
                    {
                        Debug.LogError("请先设置AssetBundle加载时的规则!");
                    }
                }
            }
        }
        /// <summary>
        /// 获取对象实例
        /// </summary>
        protected GameObject CreateInstance(GameObject prefab, UIInfoBase nodeInfo)
        {
            if (_cansaleKeys.Contains(nodeInfo.panelName))
            {
                _cansaleKeys.Remove(nodeInfo.panelName);
                return(null);
            }

            if (prefab == null || nodeInfo == null)
            {
                return(null);
            }

            GameObject go = GameObject.Instantiate(prefab);

            go.name = nodeInfo.panelName;

            go.SetActive(true);

            return(go);
        }