57 lines
1.2 KiB
C#
57 lines
1.2 KiB
C#
using UnityEngine;
|
|
using Spine.Unity;
|
|
|
|
public class SpineMovePlayer
|
|
{
|
|
public SkeletonAnimation skeleton;
|
|
public string idleName = "idle";
|
|
|
|
private static readonly string[] MoveNames =
|
|
{
|
|
"move", "walk", "run",
|
|
"Move", "Walk", "Run",
|
|
"MOVE", "WALK", "RUN"
|
|
};
|
|
|
|
private string cachedMoveAnim = null;
|
|
|
|
public void Init()
|
|
{
|
|
cachedMoveAnim = FindMoveAnimation(skeleton);
|
|
}
|
|
|
|
private string FindMoveAnimation(SkeletonAnimation sk)
|
|
{
|
|
var anims = sk.Skeleton.Data.Animations;
|
|
|
|
foreach (var name in MoveNames)
|
|
{
|
|
foreach (var a in anims)
|
|
{
|
|
if (a.Name == name)
|
|
return a.Name;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public string PlayMove()
|
|
{
|
|
if (!string.IsNullOrEmpty(cachedMoveAnim))
|
|
{
|
|
skeleton.AnimationState.SetAnimation(0, cachedMoveAnim, true);
|
|
return cachedMoveAnim;
|
|
}
|
|
else
|
|
{
|
|
skeleton.AnimationState.SetAnimation(0, idleName, true);
|
|
return idleName;
|
|
}
|
|
}
|
|
|
|
public void PlayIdle()
|
|
{
|
|
skeleton.AnimationState.SetAnimation(0, idleName, true);
|
|
}
|
|
}
|