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(); } }

 

posted @ 2018-05-29 15:31  gameDesigner  阅读(2475)  评论(0编辑  收藏  举报