/// <summary>
        /// PrefabInfo创建对象
        /// </summary>
        /// <param name="iteminfo"></param>
        private void LoadGameObject(PrefabStateItem info, OnLoadItemEvent onLoad)
        {
            string     err  = null;
            GameObject item = null;

            if (info.prefab != null)
            {
                item = CreateInstance(info.prefab, info);
                _loadingKeys.Remove(info.ID);
            }
            else
            {
                err = info.ID + "-->空";
            }
            if (onLoad != null)
            {
                onLoad.Invoke(info.ID, err, item);
            }
        }
        /// <summary>
        /// 创建对象
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="assetName"></param>
        /// <param name="onCreate"></param>
        public void LoadGameObject(StateItem itemInfo, OnLoadItemEvent onLoad)
        {
            if (_cansaleKeys.Contains(itemInfo.ID))
            {
                _cansaleKeys.RemoveAll(x => x == itemInfo.ID);
            }

            if (!_loadingKeys.Contains(itemInfo.ID))
            {
                _loadingKeys.Add(itemInfo.ID);
                var bInfo = itemInfo as BundleStateItem;
                var pInfo = itemInfo as PrefabStateItem;

                if (bInfo != null)
                {
                    LoadGameObject(bInfo, onLoad);
                }
                else if (pInfo != null)
                {
                    LoadGameObject(pInfo, onLoad);
                }
            }
        }
        /// <summary>
        /// BundleInfo创建对象
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="assetName"></param>
        /// <param name="onCreate"></param>
        private void LoadGameObject(BundleStateItem trigger, OnLoadItemEvent onLoad)
        {
#if AssetBundleTools
            assetLoader.LoadAssetFromUrlAsync <GameObject>(trigger.assetBundleName, trigger.assetName, (x) =>
            {
                string err      = null;
                GameObject item = null;
                if (x != null)
                {
                    item = CreateInstance(x, trigger);
                    _loadingKeys.Remove(trigger.ID);
                }
                else
                {
                    err = trigger.ID + "-->空";
                }

                if (onLoad != null)
                {
                    onLoad.Invoke(trigger.ID, err, item);
                }
            });
#endif
        }