Spine学习三 - 同时播放两个动画

这个效果和 Unity的动画分层有点儿像,比如 一个人有一个跑的动画,还有一个站在原地挥手的动画,Unity可以通过动画分层,让人物只需要使用这两个动画实现边跑边挥手的动画效果。

 

首先介绍一下Spine的 AnimationReferenceAsset 组件。这个组件需要指定两个东西,

1.Skeleton Data Asset:也就是需要播放的动画资源

2.Animation Name:需要播放的动画

这个东西喃,可以将一个动画提取出来,做成一个资源,这样就可以动态加载了,不过也可以直接使用动画名字,如下图:

 

然后播放动画代码具体如下:

 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 }

 

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