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