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