yyl
2026-03-04 bc1cb6da854cb2e9144f10ed55330a537ecdca16
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>