Licensing
将 Spine 官方运行时整合到自建应用程序中需要持有 Spine 许可证.
示例场景
spine-unity 运行时包含了示例场景以演示关键组件的用法和 C# API 的常见用例. 你可以在 Spine Examples
目录中找到这些场景. 每个场景均包含文本描述以帮助你快速探索场景并理解各部件信息. 以下视频概述了 spine-unity 运行时中的示例场景.
若你刚刚接触spine-unity运行时, 那么强烈建议你探索下 Spine Examples/Getting Started
中的示例场景.
Spine Examples / Getting Started
Spine Examples/Getting Started
中的示例场景演示了基本组件及基本用例.
1 The Spine GameObject
场景演示了SkeletonAnimation 组件和其引用的SkeletonDataAsset, 后者将为该组件提供基本数据.
2 Controlling Animation
该场景演示了使用 C# API 的基本动画代码 —— 即开始一段动画并对动画事件做出响应.
当按下Play键后, Spineboy将依次播放walk、run、idle和turn等动画.脚步(Footstep)事件将触发对应的音效.
你可以检查附在 spineboy
GameObject上的示例脚本 SpineBeginnerTwo
. 它演示了 SkeletonAnimation.AnimationState.SetAnimation()
和 SkeletonAnimation.AnimationState.AddAnimation()
的用法. 附在 sound
GameObject上的脚本 HandleEventWithAudioExample
演示了如何使用 SkeletonAnimation.AnimationState.Event
注册委托来回调自定义事件方法.
3 Controlling Animation Continued
该场景演示了如何使用多个动画轨道同时播放动画, 并展示了如何使用 AnimationReferenceAssets
找到动画而不是使用动画名称.
当按下Play键后, 将开始循环播放 walk
动画. 同时在该动画的时间窗口内还会播放次要动画 gungrab
和 gunkeep
.
你可以检查附在 raptor Skeleton
GameObject上的示例脚本 Raptor
. 它展示的是如何在一个组件上暴露 AnimationReferenceAsset属性, 并通过调用 SkeletonAnimation.AnimationState.SetAnimation()
方法将其作为动画分配在轨道0和轨道1上.
4 Object Oriented Sample
该场景演示了如何按照模型-视图-控制器(MVC)这一面向对象的设计模式来配置一个横板游戏角色. 即使这种设计模式可能无法完美适配你的项目, 但它也会启发一些游戏设计思路, 助你厘清如何将用户输入、游戏逻辑和可视化隔离为不同组件.
当按下Play键后, 你可以用键盘WASD(移动)、空格键(跳跃)和鼠标输入(瞄准和射击)控制Spineboy角色. 另外, 你也可以通过XBOX手柄来控制它.
你可以检查附在 PLAYER INPUT
GameObject上作为 controller
的示例脚本 SpineboyBeginnerInput
. 它会修改 SpineboyBeginnerModel
组件的状态, 该组件作为 model
附在 PLAYER Spineboy
GameObject上. 而状态的可视化是由 SpineboyBeginnerView
组件实现, 它作为 view
附在了 VIEW Spineboy
GameObject上. 可视化组件将负责播放同一个GameObject上的 SkeletonAnimation 组件中的各种动画.
5 Basic Platformer
该场景演示了一个典型的带动画横板游戏用例, 包含如跳、跑、下落、落地的动画, 并配有粒子和音效. 它还演示了了在Unity中如何用Spine网格来投射阴影.
请注意: 如果没有看到阴影, 请通过
Edit - Preferences - Quality - Shadows
(Mac上是Unity - Preferences
)来启用阴影.
当按下Play键时, 你可以用WASD(移动)和空格键(跳跃)控制角色. 或者你也可以通过XBOX手柄来控制它.
附在 Player
GameObject上的示例脚本 BasicPlatformerController
展示了如何使用Unity input来改变角色的状态, 这些状态保存在一个新建的 CharacterState
属性中. 当状态改变时会用 SkeletonAnimationHandleExample
示例脚本来过渡到新动画, 而 HeroEffectsHandlerExample
示例脚本则用来播放声音并用粒子系统产生粒子效果.
6 SkeletonGraphic
该场景演示了 SkeletonGraphic组件 的使用方式以及如何将其集成到已有的Unity UI中. 它还展示了如何使用 BoneFollowerGraphic
组件来附加文本标签以跟随骨骼位置. 你可以在 Detached BoneFollowerGraphic
和 Child BoneFollowerGraphic
的GameObjects中找到它们.
当按下Play键后会看到一个基于Canvas的用户界面(UI), Doi和Spineboy均在这一可滚动的面板中显示. 两者都像 SkeletonAnimation 组件一样循环播放动画, 且同时也是UI的一部分.