https://gameinstitute.qq.com/community/detail/127452
想要在Unity中使用Spine動畫,目前有三種方式。
第一種,利用SkeletonAnimation,這是Spine提供的原生方式,支援所有Spine功能。
第二種,利用Mecanim (or SkeletonAnimator),使用此方式Spine-unity會将SkeletonData中的動畫轉換為一系列AnimationClips ,并生成一個Unity Animator Controller。
SkeletonAnimator 元件關聯Unity Animator 和 Spine Animation ,并利用Spine Animation? API Mix 和 Aplly 方法控制動畫。這允許我們使用Unity的原有流程控制動畫。
但是可能有些副作用關于attachment keyframes,可能很難追蹤問題。attachment keyframes目前我還沒有研究到。
第三種,利用Baking,這個不推薦,這個是專門為了那些沒有spine runtime的準備的。使用此方式無法使用Spine特有的功能。
Spine with Unity Mecanim
準備資源,下載下傳官方的Spine Uinty Package, 裡面有一些示例場景。今天我們要改造一下Controling Animation Continued這個場景。
原場景使用第一種方式控制動畫。我們把它改造成使用第二種方式控制動畫。
把原有使用skeletonAnimation的地方,替換為使用animator。并添加了footstep函數用以響應動畫事件。
第二步,從raptor_SkeletonData生成raptor_Controller。點選raptor_SkeletonData在Inspector裡面有生成按鈕。
第三步,給場景中raptor_skeleton的gameobject添加兩個元件Animator 和 Skeleton Animator。并設定Animator 裡的Controller為raptor_Controller
以及Skeleton Animator裡的SkeletonData Asset 為raptor_SkeletonData。具體如下圖所示。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SM2QmMyEjMzQzY3ADOlF2Y2UmZ0UDZwQWY0cTOzgTO38CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)