Unity |
您所在的位置:网站首页 › unity动画切换的代码 › Unity |
Spine在Unity里使用有3钟方式: SkeletonAnimation,Spine原生方式,支持所有Spine功能 SkeletonMecanim (或 SkeletonAnimator),会将SkeletonData中的动画转换为一系列AnimationClips ,并生成一个Unity Animator Controller动画状态机 Baking,不推荐,是专门为没有spine runtime准备的,无法使用Spine特有的功能 之前播放Spine动画用的是SkeletonMecanim方式,发现测试用的动画资源还有皮肤,可查了半天没有找到SkeletonMecanim方式下用脚本切换皮肤的方法 找到的切换皮肤的方法都是用SkeletonAnimation方式的,就也研究了下用这种方式控制动画播放和切换皮肤 一样是直接把SkeletonData文件拖进层级窗口,不过这次选SkeletonAnimation 选择待机动画,设置循环播放,就可以运行看效果了 但这样仅仅只是播放一个动画,新建一个脚本控制点击播放其他动画和更换皮肤 using System.Collections; using System.Collections.Generic; using UnityEngine; using Spine; using Spine.Unity; public class NewBehaviourScript1 : MonoBehaviour { bool Touch = false;//用来控制动画播放过程中不能被重复开始播放 bool cloth = false;//是否切换皮肤 public SkeletonAnimation skeletonanimation; void Start()//游戏开始时执行一次 { skeletonanimation=GetComponent();//获取骨骼动画组件 skeletonanimation.AnimationState.Complete += completeEvent;//注册动画回调事件函数 skeletonanimation.AnimationState.SetAnimation(0, "XXX_idle1", true);//循环播放待机动画 } void Update()//每帧执行 { if (Input.GetMouseButtonDown(0)&& Touch==false) //左键 { Touch = true; print("点击屏幕"); skeletonanimation.AnimationState.SetAnimation(0, "XXX_angry", false);//播放点击动画 } if (Input.GetMouseButtonDown(1)) //右键 { if(cloth) { cloth = false; print("默认皮肤"); skeletonanimation.initialSkinName = "1"; skeletonanimation.Initialize(true); //重新初始化 skeletonanimation.AnimationState.Complete += completeEvent;//重新初始化后也需要重新注册动画回调事件函数 skeletonanimation.AnimationState.SetAnimation(0, "a_01_idle1", true); Touch = false; } else { cloth = true; print("切换皮肤"); skeletonanimation.initialSkinName = "8"; skeletonanimation.Initialize(true); //重新初始化 skeletonanimation.AnimationState.Complete += completeEvent;//重新初始化后也需要重新注册动画回调事件函数 skeletonanimation.AnimationState.SetAnimation(0, "a_01_idle1", true); Touch = false; } } } /*定义动画回调事件函数*/ public void completeEvent(Spine.TrackEntry trackEntry) { if(Touch) { Touch = false; //点击动画播放完成后切换回待机动画 skeletonanimation.AnimationState.SetAnimation(0, "a_01_idle1", true); } } }直接挂载上去 运行,点击对应按键测试 参考:unity spine动画使用记录 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |