From 51b0f6ed9f4e1d3bb6f8144470b46908c7699a96 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 11 五月 2026 16:20:37 +0800
Subject: [PATCH] Merge branch 'master' into h5version

---
 Main/System/Battle/BattleObject/BattleObjectFactory.cs |   33 +++++++++++----------------------
 1 files changed, 11 insertions(+), 22 deletions(-)

diff --git a/Main/System/Battle/BattleObject/BattleObjectFactory.cs b/Main/System/Battle/BattleObject/BattleObjectFactory.cs
index 7101554..229695b 100644
--- a/Main/System/Battle/BattleObject/BattleObjectFactory.cs
+++ b/Main/System/Battle/BattleObject/BattleObjectFactory.cs
@@ -2,6 +2,7 @@
 using System;
 using UnityEngine;
 using Spine.Unity;
+using Cysharp.Threading.Tasks;
 
 public class BattleObjectFactory
 {
@@ -21,8 +22,11 @@
             return m_modelScaleRate;
         }
     }
-    //  杩欓噷鎶ラ敊浜嗘鏌ヤ竴涓�
-    public static BattleObject CreateBattleObject(BattleField _battleField, List<GameObject> posNodeList, TeamHero teamHero, BattleCamp _Camp)
+
+    /// <summary>
+    /// US2: Async version of CreateBattleObject.
+    /// </summary>
+    public static async UniTask<BattleObject> CreateBattleObjectAsync(BattleField _battleField, List<GameObject> posNodeList, TeamHero teamHero, BattleCamp _Camp)
     {
         var skinCfg = HeroSkinConfig.Get(teamHero.SkinID);
         if (skinCfg == null)
@@ -31,20 +35,18 @@
             return null;
         }
 
-        // ===== 鐩存帴鍔犺浇璧勬簮锛堥潪棰勫姞杞界殑璧勬簮涓嶈蛋缂撳瓨绯荤粺锛�=====
-        SkeletonDataAsset skeletonDataAsset = ResManager.Instance.LoadAsset<SkeletonDataAsset>(
-            "Hero/SpineRes/", 
+        SkeletonDataAsset skeletonDataAsset = await ResManager.Instance.LoadAssetAsync<SkeletonDataAsset>(
+            "Hero/SpineRes/",
             skinCfg.SpineRes
         );
-        
+
         if (skeletonDataAsset == null)
         {
             Debug.LogError($"BattleObjectFactory: Failed to load SkeletonDataAsset for {skinCfg.SpineRes}");
             return null;
         }
-        // ==============================================
 
-        GameObject battleGO = ResManager.Instance.LoadAsset<GameObject>("Hero/SpineRes", "Hero_001"/*skinCfg.SpineRes*/);
+        GameObject battleGO = await ResManager.Instance.LoadAssetAsync<GameObject>("Hero/SpineRes", "Hero_001");
 
         GameObject goParent = posNodeList[teamHero.positionNum];
         BattleObject battleObject = Produce(teamHero.positionNum, _battleField);
@@ -53,14 +55,12 @@
         GameObject realGO = GameObject.Instantiate(battleGO, goParent.transform);
         SkeletonAnimation skeletonAnimation = realGO.GetComponentInChildren<SkeletonAnimation>(true);
 
-
         float finalScaleRate = modelScaleRate * teamHero.modelScale;
 
         skeletonAnimation.initialSkinName = skinCfg.InitialSkinName;
         skeletonAnimation.skeletonDataAsset = skeletonDataAsset;
         skeletonAnimation.Initialize(true);
 
-        // 鍒濆鍖栧畬鎴愬悗璁剧疆鐨偆
         if (!string.IsNullOrEmpty(skinCfg.InitialSkinName))
         {
             var skeleton = skeletonAnimation.Skeleton;
@@ -73,22 +73,11 @@
         realGO.transform.localScale = new Vector3(finalScaleRate, finalScaleRate, finalScaleRate);
         RectTransform rectTrans = realGO.GetComponent<RectTransform>();
         rectTrans.anchoredPosition = Vector2.zero;
-        
-        // HeroBattleObject 鎵嶆湁 GameObject 鍙傛暟鐨� Init 鏂规硶
+
         if (battleObject is HeroBattleObject heroBattleObject)
         {
             heroBattleObject.Init(realGO, teamHero, _Camp);
         }
-        // 鍏朵粬绫诲瀷锛堝MinggeBattleObject锛変笉鍦ㄨ繖閲屽垱寤猴紝鏈夊崟鐙殑鍒涘缓閫昏緫
-
-#if UNITY_EDITOR
-        BattleDebug.LogError(
-            "鍒濆鍖� 鏈鍔�" +
-            (battleObject.Camp == BattleCamp.Red ? "銆愮孩鏂广��" : "銆愯摑鏂广�� ") +
-            $"姝﹀皢: {battleObject.GetName()}\n" +
-            $"褰撳墠琛�閲�: {battleObject.GetCurHp()} -> 鏈�澶ц閲弡battleObject.GetMaxHp()}\n"
-        );
-#endif
 
         return battleObject;
     }

--
Gitblit v1.8.0