这个效果和 Unity的动画分层有点儿像,好比 一我的有一个跑的动画,还有一个站在原地挥手的动画,Unity能够经过动画分层,让人物只须要使用这两个动画实现边跑边挥手的动画效果。dom
首先介绍一下Spine的 AnimationReferenceAsset 组件。这个组件须要指定两个东西,动画
1.Skeleton Data Asset:也就是须要播放的动画资源spa
2.Animation Name:须要播放的动画code
这个东西喃,能够将一个动画提取出来,作成一个资源,这样就能够动态加载了,不过也能够直接使用动画名字,以下图:blog
而后播放动画代码具体以下:资源
1 public AnimationReferenceAsset walk;//制做的移动 AnimationReferenceAsset组件 2 public AnimationReferenceAsset gungrab;//同上 3 public AnimationReferenceAsset gunkeep;//同上 6 SkeletonAnimation skeletonAnimation;//播放组件 7 8 void Start () { 9 skeletonAnimation = GetComponent<SkeletonAnimation>();//获取播放组件 10 StartCoroutine(GunGrabRoutine());//开始播放 11 } 12 13 IEnumerator GunGrabRoutine () { 14 // Play the walk animation on track 0.在0层播放移动动画 15 skeletonAnimation.AnimationState.SetAnimation(0, walk, true); 16 17 // Repeatedly play the gungrab and gunkeep animation on track 1.在1层播放抓枪动画
18 while (true) { 19 yield return new WaitForSeconds(Random.Range(0.5f, 3f)); 20 skeletonAnimation.AnimationState.SetAnimation(1, gungrab, false); 21 22 yield return new WaitForSeconds(Random.Range(0.5f, 3f)); 23 skeletonAnimation.AnimationState.SetAnimation(1, gunkeep, false); 24 } 25 26 }