From 86b0e47ed7ac943c549a150dd88a31647eb60675 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期五, 26 十月 2018 17:59:00 +0800
Subject: [PATCH] 4334 【前端】随包资源支持热更 当下载到随包资源时,重新加载assetbundle信息

---
 Core/ResModule/AssetBundle/AssetBundleUtility.cs |   47 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 46 insertions(+), 1 deletions(-)

diff --git a/Core/ResModule/AssetBundle/AssetBundleUtility.cs b/Core/ResModule/AssetBundle/AssetBundleUtility.cs
index 6b41e18..372619c 100644
--- a/Core/ResModule/AssetBundle/AssetBundleUtility.cs
+++ b/Core/ResModule/AssetBundle/AssetBundleUtility.cs
@@ -42,6 +42,51 @@
         assetBundle = null;
     }
 
+    public void ReInitBuiltInAsset()
+    {
+        var path = AssetVersionUtility.GetBuiltInAssetFilePath("builtin_assetbundle");
+        var assetBundle = AssetBundle.LoadFromFile(path);
+        if (assetBundle == null)
+        {
+            DebugEx.LogError("AssetBundleManifest鐨勫寘鏂囦欢涓虹┖鎴栬�呭姞杞藉嚭閿�.");
+        }
+
+        var manifest = assetBundle.LoadAsset<AssetBundleManifest>(ResourcesPath.AssetDependentFileAssetName);
+        if (manifest == null)
+        {
+            DebugEx.LogError("AssetBundleManifest鏂囦欢涓虹┖鎴栬�呭姞杞藉嚭閿�.");
+        }
+
+        for (int i = m_AssetBundleInfoList.Count - 1; i >= 0; i--)
+        {
+            var item = m_AssetBundleInfoList[i];
+            if (item.name.Contains("builtin"))
+            {
+                m_AssetBundleInfoList.Remove(item);
+            }
+        }
+
+        foreach (var item in m_AssetBundleDict.Keys)
+        {
+            if (item.Contains("builtin"))
+            {
+                m_AssetBundleDict.Remove(item);
+            }
+        }
+
+        var bundles = manifest.GetAllAssetBundles();
+        foreach (var bundle in bundles)
+        {
+            var dependenices = manifest.GetAllDependencies(bundle);
+            var hash = manifest.GetAssetBundleHash(bundle);
+            var assetBundleInfo = new AssetBundleInfo(bundle, hash, dependenices);
+            m_AssetBundleInfoList.Add(assetBundleInfo);
+        }
+
+        assetBundle.Unload(true);
+        assetBundle = null;
+    }
+
     public IEnumerator Initialize()
     {
         yield return StartCoroutine(Co_LoadMainfestFile("audio"));
@@ -143,7 +188,7 @@
         }
 
         var isBuiltin = assetBundleName.Contains("builtin");
-        var filePath = isBuiltin?AssetVersionUtility.GetBuiltInAssetFilePath(assetBundleName) : AssetVersionUtility.GetAssetFilePath(assetBundleName);
+        var filePath = isBuiltin ? AssetVersionUtility.GetBuiltInAssetFilePath(assetBundleName) : AssetVersionUtility.GetAssetFilePath(assetBundleName);
 
         DebugEx.LogFormat("Co_LoadAssetBundle(): 灏嗚鍔犺浇鐨刟ssetBundle鍖呰矾寰� => {0}", filePath);
         var assetBundle = AssetBundle.LoadFromFile(filePath);

--
Gitblit v1.8.0