yyl
2025-09-26 4b5b31a23a74c1559460643836d70778d7d49931
Main/System/Hero/UIHeroController.cs
@@ -134,10 +134,18 @@
      pool = null;
   }
    public virtual void PlayAnimation(string motionName, bool loop = false)
   /// <summary>
   /// 播放 Spine 动画
   /// </summary>
   /// <param name="motionName">动作名</param>
   /// <param name="loop">循环</param>
   /// <param name="replay">如果相同动作是否再次重播,比如跑步重播就会跳帧不顺滑</param>
   public virtual void PlayAnimation(string motionName, bool loop = false, bool replay=true)
    {
        if (spineAnimationState == null) return;
      if (GetCurrentAnimationName() == motionName && !replay)
         return;
      // 直接使用 ToString() 而不是调用 GetAnimationName
        spineAnimationState.SetAnimation(0, motionName.ToString(), loop);
@@ -159,6 +167,21 @@
    }
   /// <summary>
   /// 获取当前正在播放的 Spine 动画名称
   /// </summary>
   /// <returns>当前动画名称,如果没有动画则返回空字符串</returns>
   public string GetCurrentAnimationName()
   {
      if (spineAnimationState == null || spineAnimationState.GetCurrent(0) == null)
      {
         return string.Empty;
      }
      return spineAnimationState.GetCurrent(0).Animation.Name;
   }
   /// <summary>
   /// 动画完成事件处理
   /// </summary>
   protected virtual void OnAnimationComplete(Spine.TrackEntry trackEntry)
@@ -166,4 +189,18 @@
      onComplete?.Invoke();
   }
   //越大越快
   public void SetSpeed(float speed)
   {
      spineAnimationState.TimeScale = speed;
   }
   public void SetEnabled(bool isEnable)
   {
      if (skeletonGraphic == null)
      {
         return;
      }
      skeletonGraphic.enabled = isEnable;
   }
}