Spine学习四 - 在动作上绑定回调事件
Spine事件特性:
SpineEvent(string startsWith = "", string dataField = "", bool includeNone = true, bool fallbackToTextField = false)
这个特性,可以让你在unity的inspetor中直接可以选取当前skeletonAnimation中的 event名字,效果如下:
1 [SpineEvent(dataField: "skeletonAnimation", fallbackToTextField: true)] 2 public string eventName;//指定一个事件名字
这个特性修饰的话,可以更好的帮助我们绑定Spine 动画的事件,不会担心输入错字符串而找不到事件。
Spine事件绑定:
1.获取播放组件的引用
2.初始化播放组件
3.根据名字查找事件
4.绑定事件回调函数
Spine.EventData eventData; void Start () {
//1.初始化播放组件 skeletonAnimation.Initialize(false); if (!skeletonAnimation.valid) return;
//2.查找事件 eventData = skeletonAnimation.Skeleton.Data.FindEvent(eventName);
//3.添加事件回调函数 skeletonAnimation.AnimationState.Event += HandleAnimationStateEvent; } private void HandleAnimationStateEvent (TrackEntry trackEntry, Event e) {
//对比是否是该事件,这里推荐使用引用比较而不是字符串比较 bool eventMatch = (eventData == e.Data); // Performance recommendation: Match cached reference instead of string. if (eventMatch) { Play(); } }