Unity

您所在的位置:网站首页 unity动画切换的代码 Unity

Unity

2024-07-09 18:58| 来源: 网络整理| 查看: 265

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