示例#1
0
        /* 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
        }
示例#2
0
        /* 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);
                    }
                }
            }
        }
示例#3
0
        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.");
        }
示例#4
0
 public static void LoadAsset_GameObject(string assetBundleName, string name, Action <GameObject> callback) =>
 AssetBundlePool.LoadAsset(assetBundleName, name, callback);
示例#5
0
 public static void LoadAsset_Material(string assetBundleName, string name, Action <Material> callback) =>
 AssetBundlePool.LoadAsset(assetBundleName, name, callback);
示例#6
0
 public static void LoadAsset_Sprite(string assetBundleName, string name, Action <Sprite> callback) =>
 AssetBundlePool.LoadAsset(assetBundleName, name, callback);
示例#7
0
 public static void LoadAsset_TextAsset(string assetBundleName, string name, Action <TextAsset> callback) =>
 AssetBundlePool.LoadAsset(assetBundleName, name, callback);
示例#8
0
 /// <summary>
 /// 释放类对象池
 /// </summary>
 public void ReleaseAssetBundlePool()
 {
     AssetBundlePool.Release();
 }