From 65b10f63d1fcf6696df105e9922a12b894be32af Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 15 八月 2025 10:19:41 +0800
Subject: [PATCH] 0312 同步表格更新

---
 Main/System/Hero/UIHeroController.cs |   42 +++++++++++++++++++++++++++++++++---------
 1 files changed, 33 insertions(+), 9 deletions(-)

diff --git a/Main/System/Hero/UIHeroController.cs b/Main/System/Hero/UIHeroController.cs
index c2291e3..1b11019 100644
--- a/Main/System/Hero/UIHeroController.cs
+++ b/Main/System/Hero/UIHeroController.cs
@@ -2,8 +2,7 @@
 using System;
 using Spine.Unity;
 using UnityEngine;
-using UnityEngine.Events;
-using UnityEngine.EventSystems;
+
 public class UIHeroController : MonoBehaviour
 {
 	private GameObjectPoolManager.GameObjectPool pool;
@@ -14,7 +13,7 @@
 	private GameObject instanceGO;
 
 	private Action onComplete;
-	public void Create(int _skinID, float scale = 1f, Action _onComplete = null)
+	public void Create(int _skinID, float scale = 1f, Action _onComplete = null, string motionName = "idle", bool isLh = false)
 	{
 		if (skinID == _skinID)
 		{ 
@@ -44,11 +43,21 @@
 
 		skeletonGraphic = instanceGO.GetComponentInChildren<SkeletonGraphic>(true);
 		var skinConfig = HeroSkinConfig.Get(skinID);
-		skeletonGraphic.skeletonDataAsset = ResManager.Instance.LoadAsset<SkeletonDataAsset>("Hero/SpineRes/", skinConfig.SpineRes);
+		if (isLh)
+		{
+			skeletonGraphic.skeletonDataAsset = ResManager.Instance.LoadAsset<SkeletonDataAsset>("Hero/SpineRes/", skinConfig.Tachie);
+		}
+		else
+		{ 
+			skeletonGraphic.skeletonDataAsset = ResManager.Instance.LoadAsset<SkeletonDataAsset>("Hero/SpineRes/", skinConfig.SpineRes);
+		}
 		skeletonGraphic.Initialize(true);
 		this.transform.localScale = Vector3.one * scale;
 		spineAnimationState = skeletonGraphic.AnimationState;
-		PlayAnimation(MotionName.idle, true);
+		spineAnimationState.Data.DefaultMix = 0f;
+		if (motionName == "")
+			motionName = GetFistSpineAnim();
+		PlayAnimation(motionName, true);
 		spineAnimationState.Complete -= OnAnimationComplete;
 		spineAnimationState.Complete += OnAnimationComplete;
 	}
@@ -69,12 +78,27 @@
 	}
 
 
-    public virtual void PlayAnimation(MotionName motionName, bool loop = false)
+    public virtual void PlayAnimation(string motionName, bool loop = false)
     {
         if (spineAnimationState == null) return;
 
-        // 鐩存帴浣跨敤 ToString() 鑰屼笉鏄皟鐢� GetAnimationName
-         spineAnimationState.SetAnimation(0, motionName.ToString(), loop);
+		// 鐩存帴浣跨敤 ToString() 鑰屼笉鏄皟鐢� GetAnimationName
+        spineAnimationState.SetAnimation(0, motionName.ToString(), loop);
+    }
+
+	// 鎾斁绗竴涓姩鐢伙紙浣滀负榛樿鍔ㄧ敾锛�
+	string GetFistSpineAnim()
+	{
+		var skeletonData = skeletonGraphic.Skeleton.Data;
+		if (skeletonData.Animations.Count > 0)
+		{
+			return skeletonData.Animations.Items[0].Name;
+		}
+		else
+		{
+			Debug.LogError("Spine 鏁版嵁涓病鏈夋壘鍒颁换浣曞姩鐢伙紒姝﹀皢鐨偆锛�" + skinID);
+		}
+		return "";
     }
 
 	/// <summary>
@@ -83,6 +107,6 @@
 	protected virtual void OnAnimationComplete(Spine.TrackEntry trackEntry)
 	{
 		onComplete?.Invoke();
-    }
+	}
 
 }
\ No newline at end of file

--
Gitblit v1.8.0