/// <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 }