From 0e58a81349c01afe2c74a587d2c7d63e7705feb5 Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期一, 29 十月 2018 19:42:26 +0800
Subject: [PATCH] 4129 【前端】重启后卡顿级优化策略 特效相关优化完成

---
 Core/ResModule/AssetBundle/AssetBundleUtility.cs |   35 ++++++++++++++++++++---------------
 1 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/Core/ResModule/AssetBundle/AssetBundleUtility.cs b/Core/ResModule/AssetBundle/AssetBundleUtility.cs
index 47895b8..ee4e87d 100644
--- a/Core/ResModule/AssetBundle/AssetBundleUtility.cs
+++ b/Core/ResModule/AssetBundle/AssetBundleUtility.cs
@@ -103,7 +103,7 @@
     }
 
     public IEnumerator InitalizeUIResources()
-    {
+    {
 #if !UNITY_IOS
         yield return StartCoroutine(Co_LoadAssetBundle(ResourcesPath.windowFileBundleName));
         yield return StartCoroutine(Co_LoadAssetBundle(ResourcesPath.uiprefabFileBundleName));
@@ -161,6 +161,16 @@
 
     public void Co_LoadAsset(string assetBundleName, string assetName, Action<bool, UnityEngine.Object> callBack = null)
     {
+        if (JudgeExistAsset(assetBundleName, assetName))
+        {
+            if (callBack != null)
+            {
+                callBack(true, m_AssetDict[assetBundleName][assetName]);
+            }
+
+            return;
+        }
+
         StartCoroutine(Co_DoLoadAsset(assetBundleName, assetName, callBack));
     }
 
@@ -174,8 +184,6 @@
         {
             yield break;
         }
-
-
 
         var _assetBundleInfo = GetAssetBundleInfo(assetBundleName);
         if (_assetBundleInfo == null)
@@ -193,8 +201,14 @@
         var filePath = isBuiltin ? AssetVersionUtility.GetBuiltInAssetFilePath(assetBundleName) : AssetVersionUtility.GetAssetFilePath(assetBundleName);
 
         DebugEx.LogFormat("Co_LoadAssetBundle(): 灏嗚鍔犺浇鐨刟ssetBundle鍖呰矾寰� => {0}", filePath);
-        var assetBundle = AssetBundle.LoadFromFile(filePath);
-        CacheAssetBundle(assetBundleName, assetBundle);
+
+        var _request = AssetBundle.LoadFromFileAsync(filePath);
+        while (!_request.isDone)
+        {
+            yield return null;
+        }
+
+        CacheAssetBundle(assetBundleName, _request.assetBundle);
     }
 
     private IEnumerator Co_LoadAssetBundleDependenice(AssetBundleInfo assetBundleInfo)
@@ -226,15 +240,6 @@
 
     private IEnumerator Co_DoLoadAsset(string assetBundleName, string assetName, Action<bool, UnityEngine.Object> callBack = null)
     {
-        if (JudgeExistAsset(assetBundleName, assetName))
-        {
-            if (callBack != null)
-            {
-                callBack(true, m_AssetDict[assetBundleName][assetName]);
-            }
-            yield break;
-        }
-
 #if UNITY_EDITOR
         RunTimeABLoadLog.AddLog(assetBundleName, assetName, UnityEngine.SceneManagement.SceneManager.GetActiveScene().name);
 #endif
@@ -321,7 +326,7 @@
 #endif
 
             Sync_LoadAssetBundle(assetBundleName);
-            if (m_AssetBundleDict.ContainsKey(assetBundleName))
+            if (m_AssetBundleDict.ContainsKey(assetBundleName))
             {
                 if (_type != null)
                 {

--
Gitblit v1.8.0