/* ctor */ private void Reset() { DeleteLatestABUpdator = true; m_AssetBundlePool = GetComponent <AssetBundlePool>(); m_AssetBundlePool.enabled = false; m_ILRuntimeService = GetComponent <ILRuntimeService>(); m_ILRuntimeService.enabled = false; m_TweenService = GetComponent <TweenService>(); m_TweenService.enabled = false; #if UNITY_EDITOR UnityEditor.EditorUtility.SetDirty(this); #endif }
/* func */ /// <summary> /// 开启携程加载更新资源包 /// </summary> /// <param name="reference">添加资源包引用计数</param> /// <param name="assetBundleNames">资源包名称</param> /// <returns>携程</returns> public static Coroutine UpdateAssetBundle(this AssetBundlePool instance, bool reference, params string[] assetBundleNames) { return(ILRuntimeService.StartILCoroutine(UpdateAssetBundlesOneByOne().GetEnumerator())); IEnumerable <object> UpdateAssetBundlesOneByOne() { foreach (string assetBundleName in assetBundleNames) { AssetBundlePool.UpdateAssetBundle(assetBundleName); while (!AssetBundlePool.AssetBundleIsReady(assetBundleName)) { yield return(null); } } } }
private IEnumerator <object> WaitForAll_Coroutine() { TaskCount = CreateInstances.Count; foreach (IEnumerator <object> enumerator in CreateInstances) { ILRuntimeService.StartILCoroutine(enumerator); } while (TaskCount > 0) { yield return(null); } TaskCount = StartInstance.Count; foreach (IEnumerator <object> enumerator in StartInstance) { ILRuntimeService.StartILCoroutine(enumerator); } while (TaskCount > 0) { yield return(null); } TaskCount = Windows.Count; foreach (Type window in Windows) { AssetBundlePool.LoadAsset <GameObject>( "bmpfont_prefab.assetbundle", window.Name, (gameObject) => { GameSystemData.Instance.PrefabCache.Insert(new PrefabAsset(window.Name, gameObject)); TaskCount--; }); } while (TaskCount > 0) { yield return(null); } GameSystemData.Instance.FontSettingWindow = FontSettingWindow.OpenWindow(); GameSystemData.Instance.MenuWindow = MenuWindow.OpenWindow(); GameSystemData.Instance.RendererWindow = RendererWindow.OpenWindow(); Debug.Log("return GameStart.WaitForAll_Coroutine."); }
public static void LoadAsset_GameObject(string assetBundleName, string name, Action <GameObject> callback) => AssetBundlePool.LoadAsset(assetBundleName, name, callback);
public static void LoadAsset_Material(string assetBundleName, string name, Action <Material> callback) => AssetBundlePool.LoadAsset(assetBundleName, name, callback);
public static void LoadAsset_Sprite(string assetBundleName, string name, Action <Sprite> callback) => AssetBundlePool.LoadAsset(assetBundleName, name, callback);
public static void LoadAsset_TextAsset(string assetBundleName, string name, Action <TextAsset> callback) => AssetBundlePool.LoadAsset(assetBundleName, name, callback);
/// <summary> /// 释放类对象池 /// </summary> public void ReleaseAssetBundlePool() { AssetBundlePool.Release(); }