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

---
 Main/Component/UI/Effect/BattleEffectPlayer.cs |   28 +++++++++++++++++-----------
 1 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/Main/Component/UI/Effect/BattleEffectPlayer.cs b/Main/Component/UI/Effect/BattleEffectPlayer.cs
index 2c7e222..5f585de 100644
--- a/Main/Component/UI/Effect/BattleEffectPlayer.cs
+++ b/Main/Component/UI/Effect/BattleEffectPlayer.cs
@@ -6,6 +6,7 @@
 using Spine;
 using UnityEngine.UI;
 using System.Linq;
+using Cysharp.Threading.Tasks;
 
 // 鐗规晥鎾斁鍣紝瀵硅薄姹犵鐞嗭細unity鐗规晥鍜宻pine鐗规晥閮芥槸鍋氬ソ鐨勯鍒朵綋
 // unity鐗规晥棰勫埗浣撴槸鐗规晥甯堝湪鍒朵綔鐨勬椂鍊欑敓鎴愮殑锛寀nity鐗规晥蹇呴』鎸傝浇璁剧疆鎾斁鏃堕暱鑴氭湰 EffectTime
@@ -124,7 +125,7 @@
     }
 
 
-    protected void InitComponent(bool showLog = true)
+    protected async UniTask InitComponent(bool showLog = true)
     {
         Clear();
         if (effectId <= 0)
@@ -156,7 +157,7 @@
         //  鍒濆鍖杝pine缁勪欢
         if (effectConfig != null && effectConfig.isSpine != 0)
         {
-            GameObject spineContainerPrefab = ResManager.Instance.LoadAsset<GameObject>("UIComp", "SpineAnimContainer");
+            GameObject spineContainerPrefab = await ResManager.Instance.LoadAssetAsync<GameObject>("UIComp", "SpineAnimContainer");
             spineContainer = GameObject.Instantiate(spineContainerPrefab, transform, true);
             spineContainer.transform.localPosition = Vector3.zero;
         }
@@ -266,11 +267,11 @@
         }
     }
 
-    public virtual void Play(bool showLog = true)
+    public virtual async void Play(bool showLog = true)
     {
         if (!isInit)
         {
-            InitComponent(showLog);
+            await InitComponent(showLog);
             isInit = true;
         }
         else
@@ -349,19 +350,19 @@
     {
         if (effectConfig.isSpine != 0)
         {
-            PlaySpineEffect();
+            PlaySpineEffect().Forget();
         }
         else
         {
-            PlayUnityEffect();
+            PlayUnityEffect().Forget();
         }
 
-        battleField?.soundManager.PlayEffectSound(effectConfig.audio);
+        battleField?.soundManager.PlayEffectSound(effectConfig.audio).Forget();
 
         OnAlphaChanged();
     }
 
-    protected void PlaySpineEffect()
+    protected async UniTask PlaySpineEffect()
     {
         if (spineComp == null)
         {
@@ -371,7 +372,7 @@
 
         // ===== 绠�鍖栵細鐩存帴浠庣紦瀛樿幏鍙栵紝缂撳瓨鍐呴儴浼氳嚜鍔ㄥ姞杞� =====
         string directory = "UIEffect/" + effectConfig.packageName;
-        SkeletonDataAsset skeletonDataAsset = BattleResManager.Instance.GetSpineResource(
+        SkeletonDataAsset skeletonDataAsset = await BattleResManager.Instance.GetSpineResource(
             directory, 
             effectConfig.fxName,
             battleField?.guid
@@ -380,6 +381,11 @@
         if (skeletonDataAsset == null)
         {
             Debug.LogError($"BattleEffectPlayer: Failed to load effect spine {effectConfig.fxName}");
+            return;
+        }
+
+        if (this == null || spineComp == null)
+        {
             return;
         }
         // ================================
@@ -433,11 +439,11 @@
         return false;
     }
 
-    protected void PlayUnityEffect()
+    protected async UniTask PlayUnityEffect()
     {
         //  杩欓噷鏄函unity鐗规晥鐨勯�昏緫
 
-        var effectPrefab = ResManager.Instance.LoadAsset<GameObject>("UIEffect/" + effectConfig.packageName, effectConfig.fxName);
+        var effectPrefab = await ResManager.Instance.LoadAssetAsync<GameObject>("UIEffect/" + effectConfig.packageName, effectConfig.fxName);
         if (effectPrefab == null)
         {
             Debug.LogError($"鍔犺浇UI鐗规晥澶辫触: {effectConfig.packageName}");

--
Gitblit v1.8.0