本文于2024-04-19译自官方的Spine-Unity 4.1 to 4.2 Upgrade Guide, 由原文作者 @Harald 授权翻译, 本译本随官方文档更新.
This Guide was translated from Spine-Unity 4.1 to 4.2 Upgrade Guide, authorized by guide writer @Harald at 2024-04-19.Update simultaneously with original post.
Spine 4.2现已新鲜出炉, 因此本文将在此提供一份4.2版运行时的官方升级指南.
重导出Skeleton和升级 spine-unity 运行时文件
请查阅 spine-unity 文档的以下章节:
spine-unity 运行时文档: 更新spine-unity运行时
spine-unity 运行时文档: 更新UPM插件包
这些内容描述了重导出Skelton、spine-unity 跨版本升级以及安全升级 spine-unity 运行时文件等操作的必要步骤.
调整代码以适应4.2中的API更改
API相关的详细变更, 请参见 Changelog 中 C#
和 Unity
的相关部分
https://github.com/EsotericSoftware/spine-runtimes/blob/4.2/CHANGELOG.md#c-2
一些方法在4.2版中已被更名或被替换.
如果你在代码中因为使用已更名或已移除的方法而收到编译错误, 执行以下检查步骤将有助于快速修复代码兼容性问题:
-
用 TrackEntry.MixAttachmentThreshold
替换 TrackEntry.AttachmentThreshold
.
-
用 TrackEntry.MixDrawOrderThreshold
替换 TrackEntry.DrawOrderThreshold
.
-
用 Skeleton.UpdateWorldTransform(Skeleton.Physics.Update)
替换 Skeleton.UpdateWorldTransform()
. 请注意: 如果你很确定在同一帧内就会调用Skeleton.UpdateWorldTransform(Skeleton.Physics.Update)
, 你可把入参Skeleton.Physics.Update
换成Skeleton.Physics.Pose
传入.
-
将SkeletonGraphicRenderTexture.quadRawImage
替换为SkeletonGraphicRenderTexture.quadMaskableGraphic
, 并将数据类型从RawImage
改为MaskableGraphic
.
从4.1升级至4.2的运行时行为更改
关于行为变更的完整列表, 仍请参见 Changelog 中 C#
和 Unity
的相关部分
https://github.com/EsotericSoftware/spine-runtimes/blob/4.2/CHANGELOG.md#c-2
-
MeshGenerator
添加了一个新的优化选项, 避免在默认情况下槽位alpha为0时将附件渲染为完全透明. 注释掉 MeshGenerator.cs
中的 #define SLOT_ALPHA_DISABLES_ATTACHMENT
即可恢复旧版运行时行为. 只有在自定义着色器中将顶点色 alpha 用于透明度以外的目的时, 才需要禁用此选项.
-
SkeletonGraphic Materials: 由于为 CanvasGroupCompatible
参数添加了新的material集, SkeletonGraphic material均已默认禁用了 CanvasGroup Compatible
选项. 如果你希望在SkeletonGraphic中启用 CanvasGroup Compatible
, 从 CanvasGroupCompatible
的material子目录中分配对应material即可. 请注意, 现在可以使用新的 Detect Settings
和 Detect Material
按钮来自动分配适当material.
现可在中文下载页中下载最新的unitypackages: spine-unity 下载页面
如果你发现有什么解释得含混不清的地方, 或者指南中存在内容错漏, 请毫不犹豫地在此跟帖来痛陈高见, 这样我们才能让大家的升级之旅尽可能的更无脑&更无痛.
希望诸位喜欢新版本的Spine, 并用它创造出更多令人惊叹的游戏佳作! 🙂