From af8dafd75f9a6fae017734d58fc7b34d6bdcd0f4 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期一, 25 八月 2025 22:03:51 +0800
Subject: [PATCH] 0312 开启限帧
---
Main/System/Hero/UIHeroController.cs | 48 +++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 41 insertions(+), 7 deletions(-)
diff --git a/Main/System/Hero/UIHeroController.cs b/Main/System/Hero/UIHeroController.cs
index 20fd6af..ac94bf1 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 = 0.8f, Action _onComplete = null, string motionName = "idle", bool isLh = false)
{
if (skinID == _skinID)
{
@@ -44,12 +43,32 @@
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);
+ }
+ if (skeletonGraphic.skeletonDataAsset == null)
+ {
+
+ transform.SetActive(false);
+ if (pool != null)
+ pool.Release(instanceGO);
+ skeletonGraphic = null;
+ Destroy(instanceGO);
+ Debug.LogError("鏈厤缃畇pine");
+ return;
+ }
skeletonGraphic.Initialize(true);
this.transform.localScale = Vector3.one * scale;
spineAnimationState = skeletonGraphic.AnimationState;
spineAnimationState.Data.DefaultMix = 0f;
- PlayAnimation(MotionName.idle, true);
+ if (motionName == "")
+ motionName = GetFistSpineAnim();
+ PlayAnimation(motionName, true);
spineAnimationState.Complete -= OnAnimationComplete;
spineAnimationState.Complete += OnAnimationComplete;
}
@@ -70,12 +89,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);
+ }
+
+ // 鎾斁绗竴涓姩鐢伙紙浣滀负榛樿鍔ㄧ敾锛�
+ 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>
@@ -84,6 +118,6 @@
protected virtual void OnAnimationComplete(Spine.TrackEntry trackEntry)
{
onComplete?.Invoke();
- }
+ }
}
\ No newline at end of file
--
Gitblit v1.8.0