Unity 使用 Spine 动画

本文详细介绍了在 Unity 中如何导入和使用 Spine 动画,包括运行库和插件的导入、Spine 资源的处理、在 UGUI 中应用动画、程序控制动画播放以及优化和解决手机包贴图丢失问题的方法。
摘要由CSDN通过智能技术生成

在 Unity 中,常常使用 Spine 来制作一些动画,引擎本身并不能直接播放 Spine 动画,需要额外导入一个 RunTime 插件库才能支持。

运行库导入

到 Spine 官网关于 Unity 插件的下载地址spine-unity-download 直接下载最新的插件包,例如:Spine-Unity 3.6 runtime unitypackage ,然后直接导入工程中。

这种方式是比较常用而且方便的,因为在导入插件核心库的同时,还是导入一些 demo 例子,帮助我们快速上手使用插件的 API ,因此这里我也选择使用第二种方式导入插件。建议新建一个空工程来导入相关 demo 了解插件的使用,而正式工程只导入 spine-csharp 和 spine-unity 两个部分即可。

插件导入步骤
  • 在 Unity 菜单中依次点击:Assets->Improt Package->Custom Package

  • 选中 Spine-Unity 3.6 runtime unitypackage 并导入,去掉 Spine Examples 的勾选(假如需要查看 demo 则点击 All )在这里插入图片描述点击 Import 完成导入,导入完成后在工程 Assets 下会多出一个 Spine 目录,表示导入成功。

Spine 资源导入步骤

通常制作好的 Spine 动画导出时会有三个文件: .png 、.json 和 .atlas :
在这里插入图片描述

  • 在导入 Unity 之前需要将 .atlas 后缀的文件改为 .atlas.txt 后缀(不修改可能会有问题);

  • 将三个文件拖到 Unity 的 Project 面板中,假如运行库导入正常,此时会生成三个新的文件:_Atlas 、_Material 和 _SkeletinData ,并且在 Console 面板中会打印导入成功的日志:
    在这里插入图片描述
    三个文件的作用:

  • _Material资源包含一个着色器引用和.png纹理。

  • _Atlas资源包含一个材质引用和.atlas.txt 。

  • _SkeletonData资源包含一个json引用和_Atlas资源。

在 UGUI 中使用 Spine

在 Hierarchy 面板中,右键 Spine->SkeletonGraphic(UnityUI) :在这里插入图片描述
然后将 Spine 资源导入时生成的 _SkeletinData 文件拖到动画 UI 对象的 Skeleton Data Asset 属性中,且可以编辑相应的动画控制属性:
在这里插入图片描述
勾选 Starting Loop 然后运行场景即可看到当前 Starting Animation 所选中动画的效果,并能动态切换其他动画。

程序控制

很多时候,动画需要通过程序控制实现动态创建、切换和销毁,主要会用到几个组件:SkeletonAnimation 、SkeletonGraphic 和 SkeletonRenderer :
SkeletonAnimation 动画基本控制组件:

skeletonAnimation.timeScale = 1.5f;
skeletonAnimation.loop = true;
skeletonAnimation.AnimationName = "run";

这里用于设置动画的播放速度,是否循环,还有切换动画,如下脚本,将其挂在带 SkeletonAnimation 或继承自 SkeletonAnimation 的组件的物体上,用于播放一次动画:

using UnityEngine;public class TestSpineAnimCtl : MonoBehaviour {
   
    public SkeletonAnimation sa;// Use this for initialization
    void Start () {
   
        sa = sa ?? gameObject.GetComponent<SkeletonAnimation>();
        PlayAnim("run2"</
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值