From 8d77144cfb756529507dc6927dcdcfd9f4a30750 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 25 二月 2026 14:48:37 +0800
Subject: [PATCH] 视频播放支持

---
 Main/System/Hero/UIHeroController.cs |   20 ++++++++++++--------
 1 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/Main/System/Hero/UIHeroController.cs b/Main/System/Hero/UIHeroController.cs
index dd7ae75..7ae549e 100644
--- a/Main/System/Hero/UIHeroController.cs
+++ b/Main/System/Hero/UIHeroController.cs
@@ -1,5 +1,6 @@
 
 using System;
+using Spine;
 using Spine.Unity;
 using UnityEngine;
 using UnityEngine.UI;
@@ -10,7 +11,7 @@
 	private int skinID;
 	protected SkeletonGraphic skeletonGraphic;
 
-	protected Spine.AnimationState spineAnimationState;
+	public Spine.AnimationState spineAnimationState;
 	private GameObject instanceGO;
 
 	public Action onComplete;
@@ -26,7 +27,7 @@
 				if (isLh)
 				{
 					var skinConfigTmp = HeroSkinConfig.Get(skinID);
-					if (skinConfigTmp != null && skinConfigTmp.Tachie.Contains("SkeletonData"))
+					if (skinConfigTmp != null && skinConfigTmp.Tachie.IsSpine())
 					{
 						skeletonGraphic.enabled = true;
 					}
@@ -60,7 +61,7 @@
 
 			//绔嬬粯鐗规畩澶勭悊锛屾病鏈塻pine鍔ㄧ敾鐨勬敼鐢ㄥ浘鐗�
 			var lhImg = this.AddMissingComponent<RawImage>();
-			if (!skinConfig.Tachie.Contains("SkeletonData"))
+			if (!skinConfig.Tachie.IsSpine())
 			{
 				//鍥剧墖鏇挎崲
 				lhImg.SetTexture2DPNG(skinConfig.Tachie);
@@ -150,7 +151,10 @@
 		spineAnimationState.Complete += OnAnimationComplete;
 	}
 
-
+	public bool HasAnimation(string motionName)
+	{
+		return skeletonGraphic != null && skeletonGraphic.Skeleton != null && skeletonGraphic.Skeleton.ContainsMotion(motionName);
+	}
 
 
 	protected void OnDestroy()
@@ -171,15 +175,15 @@
 	/// <param name="motionName">鍔ㄤ綔鍚�</param>
 	/// <param name="loop">寰幆</param>
 	/// <param name="replay">濡傛灉鐩稿悓鍔ㄤ綔鏄惁鍐嶆閲嶆挱锛屾瘮濡傝窇姝ラ噸鎾氨浼氳烦甯т笉椤烘粦</param>
-	public virtual void PlayAnimation(string motionName, bool loop = false, bool replay = true)
+	public virtual TrackEntry PlayAnimation(string motionName, bool loop = false, bool replay = true)
 	{
-		if (spineAnimationState == null) return;
+		if (spineAnimationState == null) return null;
 
 		if (GetCurrentAnimationName() == motionName && !replay)
-			return;
+			return null;
 
 		// 鐩存帴浣跨敤 ToString() 鑰屼笉鏄皟鐢� GetAnimationName
-		spineAnimationState.SetAnimation(0, motionName.ToString(), loop);
+		return spineAnimationState.SetAnimation(0, motionName.ToString(), loop);
 	}
 
 	// 鎾斁绗竴涓姩鐢伙紙浣滀负榛樿鍔ㄧ敾锛�

--
Gitblit v1.8.0