spine-unity

运行时简介

请查阅spine-unity 运行时文档

下载


spine-unity 4.2

spine-unity unitypackage

  • spine-unity 4.2 (更新于 2025-05-16, changelog)
    适用于Spine 4.2.00或更高版本, 以及Unity 2017.1-6000.0.
    使用git URL添加包: (各URL分别为spine-csharp, spine-unity 和示例文件)
    https://github.com/EsotericSoftware/spine-runtimes.git?path=spine-csharp/src#4.2 https://github.com/EsotericSoftware/spine-runtimes.git?path=spine-unity/Assets/Spine#4.2 https://github.com/EsotericSoftware/spine-runtimes.git?path=spine-unity/Assets/Spine Examples#4.2

URP Shaders UPM包 com.esotericsoftware.spine.urp-shaders

  • Unity 2019.3-6000.0: spine.urp-shaders 4.2 (更新于 2025-04-01)
    适用于spine-unity 4.2, 以及Unity 2019.3-6000.0.
    使用git URL添加包: (适用于通过UPM安装的spine-unity)
    https://github.com/EsotericSoftware/spine-runtimes.git?path=spine-unity/Modules/com.esotericsoftware.spine.urp-shaders#4.2

LWRP Shaders UPM 包 com.esotericsoftware.spine.lwrp-shaders

  • Unity 2019.1: spine.lwrp-shaders 4.2 (更新于 2024-04-17)
    适用于spine-unity 4.2, 以及Unity 2019.1.
  • Unity 2019.2: spine.lwrp-shaders 4.2 (更新于 2024-04-17)
    适用于spine-unity 4.2, 以及Unity 2019.2.
    使用git URL添加包: (适用于通过UPM安装的spine-unity)
    https://github.com/EsotericSoftware/spine-runtimes.git?path=spine-unity/Modules/com.esotericsoftware.spine.lwrp-shaders#4.2

时间轴扩展 UPM 包 com.esotericsoftware.spine.timeline

spine-unity 4.3-beta

spine-unity unitypackage

  • spine-unity 4.3-beta (更新于2025-04-28, changelog)
    适用于Spine 4.3.00-beta或更高版本, 以及Unity 2017.1-6000.0.
    使用git URL添加包: (各URL分别为spine-csharp, spine-unity 和示例文件)
    https://github.com/EsotericSoftware/spine-runtimes.git?path=spine-csharp/src#4.3-beta https://github.com/EsotericSoftware/spine-runtimes.git?path=spine-unity/Assets/Spine#4.3-beta https://github.com/EsotericSoftware/spine-runtimes.git?path=spine-unity/Assets/Spine Examples#4.3-beta

URP Shaders UPM 包 com.esotericsoftware.spine.urp-shaders

  • Unity 2019.3-6000.0: spine.urp-shaders 4.3-beta (更新于 2025-04-10)
    适用于spine-unity 4.3-beta, 以及Unity 2019.3-6000.0.
    使用git URL添加包: (适用于通过UPM安装的spine-unity)
    https://github.com/EsotericSoftware/spine-runtimes.git?path=spine-unity/Modules/com.esotericsoftware.spine.urp-shaders#4.3-beta

时间轴扩展 UPM 包 com.esotericsoftware.spine.timeline

懒加载扩展 UPM 包 com.esotericsoftware.spine.on-demand-loading

Addressables 扩展 UPM 包 com.esotericsoftware.spine.addressables


在新项目中安装 spine-unity

  1. 创建一个空白的新项目.
  2. 导入你下载的 spine-unity.unitypackage 组件包. (双击即可触发 Unity 包导入流程).

若你对 spine-unity 尚无了解, 请移步spine-unity 运行时文档的安装一章来了解更多信息.

在现有项目中更新运行时

  • 如同 Unity 的更新一样, 建议在进行更新前备份你的整个 Unity 项目.
  • 在更新你的 Spine 运行时前, 务必与你的主程和TA做好确认. Spine运行时是开源的, 并允许用户根据不同的项目需求进行修改. 因此你项目中的 Spine 运行时有可能已被程序员修改. 此时若需要更新最新的运行时, 也需要将这些重新修改一遍新版本的运行时.
  • 请阅读 unitypackage 中包含的 CHANGELOG.md 文件或浏览 github 更改日志页面. 如果有过时的函数方法被新方法所取代, 可以在这些文档中找到细节表述.

就地更新 (通过.unitypackage)

当进行大版本升级时(例如从3.8升级到4.0), 请参阅 spine-unity 文档中的更新 spine-unity 运行时一章. 如果是小版本升级(例如从4.0到新的4.0包), 请按以下步骤进行更新:

  1. 打开Unity项目.
  2. 双击 unitypackage 文件或将其拖入 Unity 编辑器的项目视图, 即可将 .unitypackage 导入你的项目.
  3. 导入对话框将显示哪些文件会更新, 即使你在上次导入后更改过文件位置.

    若修改或替换了元文件(meta), 文件重定位功能可能无法正常工作. 这时就必须在导入 unitypackage 前删除旧版运行时.

要了解更多的更新方法, 请参阅 spine-unity 文档中的更新 spine-unity 运行时一章.


安装扩展 UPM 包

  1. spine-unity 下载页中找到所需的 UPM 包, 也可以在 Git 仓库的 spine-runtimes/spine-unity/Modules 子目录下找到它们.
  2. 若已打开了某个 Unity 项目, 建议你: a) 关闭 Unity 或 b) 关闭当前包含了 Spine 组件的场景 (建议你新建一个空场景来执行安装).
  3. 在解压了 UPM 包(如果使用git, 则是复制文件)后: a) 把包中的文件复制到你项目中的 Packages 目录. Unity 会自动加载它 b) 把包中的文件复制到 Assets 目录外的任意位置, 然后在 Unity 中打开 Package Manager (Window > Package Manager), 选择 + 图标, 单击 Add package from disk..., 选择 package.json 文件.
  4. 此时在 Project 面板中的 Packages 下就会显示出你刚安装的包, 比如 Spine Lightweight RP Shaders. 如果该条目没有在 Project 面板中显示, 你可能需要重启一下Unity.

更新当前的 UPM 包

就地更新 (通过.zip文件或git更新)

  1. 若已打开了某个Unity项目, 建议你: a) 关闭 Unity 或 b) 关闭当前包含了 Spine 组件的场景 (建议你新建一个空场景来执行安装).
  2. 将新版本 UPM 包的 zip 文件或 git 目录中的内容复制到当前版本的运行时目录中. 根据你安装 UPM 包的不同方式, 目录可能是项目中的 project_root/Packages/package_name 目录, 也可能是 Assets 目录外的任意目录, 可以通过 Add package from disk.. 来加载它.
  3. 如果你已经关闭了 Unity, 那请在 Unity 中再次打开你的项目.
  4. Unity 此时将会导入新资产并显示一个加载进度条.

已知问题:

  • SkeletonData 资产为空的时候, 是无法把它拖入层级视图中的. 你只能将它们放入场景视图, 或者在拖入层级视图前创建一个空 GameObject.

Unity的限制:

  • Unity 的物理组件不支持动态分配的顶点, 所以它们不反映 BoundingBoxAttachments 的骨骼权重(bone-weighted)和变形(deformed). 然而 BoundingBoxAttachments 的内部顶点数据在运行时内仍然可被正确变形, 但你得自己写代码来进行碰撞检测.
  • Spine 动画不会被导入为 Unity.AnimationClip 对象. Unity 使用了不同的曲线方案(curve scheme), 而且其功能与 Spine 动画的功能不能完美兼容. 而 spine-unity 使用核心 C# Spine.Animation 对象制作动画, 这些对象能够保持所有 Spine 动画特性. 这意味着一些便利性功能可能无法保留, 比如在 Unity 的编辑模式下无法用动画面板来回放动画.
  • Unity 不会识别所有的文件类型, 所以 atlas 需要导出为 .atlas.txt 格式. 同样, 二进制文件也需要导出为 .skel.bytes. 关于导入 Spine 资产的更多信息, 请参阅文档中的 Spine 资产一节
  • Unity 在多 material /多子网格、排序和动态合批(batching)方面有个老毛病. 若使用多 materials 的 skeleton 有多个副本, Unity 的动态合批系统会尝试将相似的 materials 合批, 但它在有多个相似 materials 的子网格的合批过程中, 会破坏 skeleton 内的排序. 要解决 Unity 的这个毛病, 可以在你的 Spine GameObject 中添加一个 Sorting Group 组件. 不过若你的 skeleton 只使用一种 texture 和 material, Unity 原生的合批系统性能仍是更好的.


兼容性须知

  • 运行时只能加载与 Spine 编辑器版本一致的二进制导出文件(新旧版本均应执行重导出).
  • Json 导出文件更稳定, 有更大可能与未来版本兼容, 但并非万无一失.
  • 如果你想避免出现与某个既定运行时版本的不兼容, 你可以将特定于该运行时的Spine编辑器版本固定下来. 在Spine的 Settings... 窗口中就能搞定.
    欲知更多详情, 请参见论坛中的这篇帖子.


早期版本

spine-unity unitypackages

spine-unity 4.1 for Unity 2017.1-2023.1
spine-unity 4.1 2024-06-19
(最近更新时间: UTC - 2024 Jun 19)

spine-unity 4.0 for Unity 2017.1-2022.1
spine-unity 4.0 2024-08-21
(最近更新时间: UTC - 2024 Aug 21)

spine-unity 3.8 for Unity 2017.1-2020.3
spine-unity 3.8 2021-11-10
(最近更新时间: UTC - 2021 Nov 10)

spine-unity 3.7 for Unity 5.6-2018.4
spine-unity 3.7 2019-08-05
(最近更新时间: UTC - 2019 Aug 05)

spine-unity 3.6 for Unity 5.6-2018.2:
spine-unity 3.6 2019-05-13
(最近更新时间: UTC - 2019 May 13)

spine-unity 3.5 for Unity 5.4-2017.1:
spine-unity 3.5 (Unity 5.4)
(最近更新时间: UTC - 2017 June 18)

spine-unity 3.0 for Unity 4.6:
spine-unity 3.0 (Unity 4.6)
(最近更新时间: UTC - 2017 May 9)


UPM 包

URP Shaders UPM包 com.esotericsoftware.spine.urp-shaders
spine.urp-shaders 4.1 2023-10-26 - Unity 2019.3-2023.1
适用于spine-unity 4.1, 以及Unity 2019.3-2023.1.

spine.urp-shaders 4.0 2022-05-25 - Unity 2019.3-2022.1
适用于spine-unity 4.0, 以及Unity 2019.3-2022.1.

spine.urp-shaders 3.8 2021-03-04 - Unity 2019.3-2020.3
适用于2019-12-20之后的spine-unity 3.8或更高版本, 以及Unity 2019.3-2020.3.


LWRP Shaders UPM包 com.esotericsoftware.spine.lwrp-shaders
spine.lwrp-shaders 4.1 2022-07-01 - Unity 2019.1
适用于spine-unity 4.1, 以及Unity 2019.1.
spine.lwrp-shaders 4.1 2022-07-01 - Unity 2019.2
适用于spine-unity 4.1, 以及Unity 2019.2.

spine.lwrp-shaders 4.0 2021-07-01 - Unity 2019.1
适用于spine-unity 4.0, 以及Unity 2019.1.
spine.lwrp-shaders 4.0 2021-07-01 - Unity 2019.2
适用于spine-unity 4.0, 以及Unity 2019.2.

spine.lwrp-shaders 3.8 2021-03-04 - Unity 2019.1
适用于spine-unity 3.8, 以及Unity 2019.1.

spine.lwrp-shaders 3.8 2021-03-04 - Unity 2019.2
适用于spine-unity 3.8, 以及Unity 2019.2.


时间轴扩展 UPM 包 com.esotericsoftware.spine.timeline
spine.timeline 4.1 for spine-unity unitypackage (更新于 2023-09-13)
适用于spine-unity 4.1, 以及Unity 2017.1-2023.1.
备选方案: spine.timeline 4.1 for spine-unity UPM (更新于 2023-09-13)
使用 Unity 包管理器(UPM)安装 spine-unity 运行时而非 unitypackage, 请使用该包. 适用于spine-unity 4.1, 以及Unity 2017.1-2023.1.

spine.timeline 4.0 2022-06-01 for spine-unity unitypackage
若通过unitypackage(默认)安装spine-unity, 请使用该包. 适用于spine-unity 4.0, 以及Unity 2017.1-2022.1.
备选方案: spine.timeline 4.0 2022-06-01 for spine-unity UPM
使用 Unity 包管理器(UPM)安装 spine-unity 运行时而非 unitypackage, 请使用该包. 适用于spine-unity 4.0, 以及Unity 2017.1-2022.1.

spine.timeline 3.8 2021-03-19
适用于2019-10-3之后的spine-unity 3.8或更高版本, 以及Unity 2017.1-2020.3.

spine.timeline 3.8 2019-08-05
适用于2019-10-3之前的spine-unity 3.8, 以及Unity 2017.1-2019.2.