From bc1cb6da854cb2e9144f10ed55330a537ecdca16 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 04 三月 2026 14:35:57 +0800
Subject: [PATCH] 466 h5版本 资源规则修改 打包修改(未完成 勿拉取)

---
 Main/Core/Frame/UIFrameMgr.cs |   41 ++++++++++++++++++++++++++++++-----------
 1 files changed, 30 insertions(+), 11 deletions(-)

diff --git a/Main/Core/Frame/UIFrameMgr.cs b/Main/Core/Frame/UIFrameMgr.cs
index df23859..841ec8e 100644
--- a/Main/Core/Frame/UIFrameMgr.cs
+++ b/Main/Core/Frame/UIFrameMgr.cs
@@ -1,5 +1,6 @@
 锘匡豢using System.Collections;
 using System.Collections.Generic;
+using Cysharp.Threading.Tasks;
 using UnityEngine;
 
 /// <summary>
@@ -51,25 +52,43 @@
     {
         if (allFrameDic.ContainsKey(cfg.name))
             return;
+
+        List<UniTask> uniTasks = new List<UniTask>();
             
-        List<Sprite> spriteList = new List<Sprite>();
-        
+        List<Sprite> spriteList = new List<Sprite>(new Sprite[cfg.frameCnt]);
         for (int i = 1; i <= cfg.frameCnt; i++)
         {
+            int index = i;
             string spritePath = "Sprite/" + cfg.folder;
             string spriteName = StringUtility.Concat(cfg.name, "_", i.ToString());
-            
-            Sprite sprite = ResManager.Instance.LoadAsset<Sprite>(spritePath, spriteName);
-            if (sprite != null)
+
+            var task = ResManager.Instance.LoadAssetAsync<Sprite>(spritePath, spriteName).ContinueWith(sprite =>
             {
-                spriteList.Add(sprite);
-            }
+                if (sprite != null)
+                {
+                    spriteList[index - 1] = sprite;
+                }
+                else
+                {
+                    Debug.LogError($"鍔犺浇甯у姩鐢昏祫婧愬け璐�: {spritePath}/{spriteName}");
+                }
+            });
+
+            uniTasks.Add(task);
         }
-        
-        if (spriteList.Count > 0)
+
+        UniTask.WhenAll(uniTasks).ContinueWith(() =>
         {
-            allFrameDic.Add(cfg.name, spriteList);
-        }
+            if (this == null) // 妫�鏌ョ鐞嗗櫒鏄惁宸茶閿�姣�
+                return;
+                
+            if (spriteList.Count > 0)
+            {
+                allFrameDic.Add(cfg.name, spriteList);
+            }
+        }).Forget();
+        
+
     }
 
     /// <summary>

--
Gitblit v1.8.0