Super Knight : Enter the Dungeon
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
using Spine;
|
|
|
|
|
using Spine.Unity;
|
|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEngine.Events;
|
|
|
|
|
using UnityEngine.Serialization;
|
|
|
|
|
|
|
|
|
|
public class SpineAnimtionPlay : MonoBehaviour
|
|
|
|
|
{
|
|
|
|
|
[System.Serializable]
|
|
|
|
|
public class Control
|
|
|
|
|
{
|
|
|
|
|
[Space(10)]
|
|
|
|
|
public int layer;
|
|
|
|
|
[SpineAnimation]
|
|
|
|
|
public string name;
|
|
|
|
|
public bool loop;
|
|
|
|
|
[Space]
|
|
|
|
|
public float timeScale = 1f;
|
|
|
|
|
[Space]
|
|
|
|
|
public bool useMixDuration;
|
|
|
|
|
public float mixDuration;
|
|
|
|
|
|
|
|
|
|
[Space(10)]
|
|
|
|
|
public bool USE_END = false;
|
|
|
|
|
[System.Serializable]
|
|
|
|
|
public class EndEvent : UnityEvent<bool> { }
|
|
|
|
|
[FormerlySerializedAs("onEnd")]
|
|
|
|
|
[SerializeField]
|
|
|
|
|
[Space(10)]
|
|
|
|
|
private EndEvent onEnd = new EndEvent();
|
|
|
|
|
public void PlayEnd()
|
|
|
|
|
{
|
|
|
|
|
onEnd.Invoke(true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public SkeletonAnimation skeletonAnimation;
|
|
|
|
|
[Space(10)]
|
|
|
|
|
public List<Control> data;
|
|
|
|
|
Spine.AnimationState spineState;
|
|
|
|
|
public void Play(int idx)
|
|
|
|
|
{
|
|
|
|
|
Play(data[idx]);
|
|
|
|
|
}
|
|
|
|
|
public void Play(Control control)
|
|
|
|
|
{
|
|
|
|
|
if (spineState == null)
|
|
|
|
|
spineState = skeletonAnimation.state;
|
|
|
|
|
|
|
|
|
|
TrackEntry track = spineState.SetAnimation(control.layer, control.name, control.loop);
|
|
|
|
|
|
|
|
|
|
if (track != null)
|
|
|
|
|
{
|
|
|
|
|
if (control != null)
|
|
|
|
|
{
|
|
|
|
|
track.MixDuration = control.useMixDuration ? control.mixDuration : 0;
|
|
|
|
|
track.TimeScale = control.timeScale;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (control.USE_END)
|
|
|
|
|
{
|
|
|
|
|
track.Complete += delegate (TrackEntry entry)
|
|
|
|
|
{
|
|
|
|
|
control.PlayEnd();
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//if (OnEvent != null)
|
|
|
|
|
//{
|
|
|
|
|
// track.Event += delegate (TrackEntry trackEntry, Spine.Event e)
|
|
|
|
|
// {
|
|
|
|
|
// OnEvent(e);
|
|
|
|
|
// };
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|