本文于2022-07-06译自官方的Spine-Unity 4.0 to 4.1 Upgrade Guide, 由作者@"Harald"#7956授权翻译, 本译本随官方文档更新.
This Guide was translated from Spine-Unity 4.0 to 4.1 Upgrade Guide, authorized by the writer @"Harald"#7956 at 2022-07-06.Update simultaneously with original post.
Spine 4.1现已新鲜出炉, 因此本文将在此提供一份官方4.1版运行时的升级指南.
重新导出skeletons并更新spine-unity运行时文件
请查阅以下spine-unity文档章节:
spine-unity运行时文档:更新spine-unity运行时
spine-unity运行时文档:更新UPM包插件
它们描述了一些必要的步骤,比如该怎么重新导出你的Skeleton、如何跨多个spine-unity版本升级以及如何安稳地升级spine-unity运行时文件
调整代码以适应4.1版API的改动
API的主要改动参见Changelog中的C#
和Unity
小节:
https://github.com/EsotericSoftware/spine-runtimes/blob/4.1/CHANGELOG.md#c-2
某些方法在4.1版中已更名或被替换.
如果你在代码中因使用已更名或已移除的方法而收到编译错误, 按以下的步骤进行检查将有助于快速修复代码兼容性问题:
-
SkeletonGraphic.unscaledTime
属性现在改为protected
了. 可以使用新属性UnscaledTime
来替代.
-
移除了AttachmentRegionExtensions
的方法Attachment.SetRegion
, MeshAttachment.SetRegion
和RegionAttachment.SetRegion(region, update)
.
应使用attachment.Region = region; if (update) attachment.UpdateRegion()
替换之.
下表涵盖了对运行时内部设计的大改动, 用户通常不会访问这些部分. 这些东西在用户代码中多半从未使用过, 因此代码检查时可略过以下更改:
-
移除了IHasRendererObject
接口. 可使用IHasTextureRegion
代替.
-
移除了RegionAttachment和MeshAttachment的RendererObject
属性. 可使用attachment.Region
属性代替.
-
用Attachment.UpdateRegion
替换了RegionAttachment.UpdateOffset
和MeshAttachment.UpdateUVs
.
调用方必须确保附件区域不为null
.
-
AttachmentLoader.NewRegionAttachment()
和AttachmentLoader.NewMeshAttachment()
现在接受一个额外参数Sequence
.
-
已用 VertexAttachment.TimelineAttachment
替换了 VertexAttachment.DeformAttachment
属性.
-
RegionAttachment.ComputeWorldVertices()
的首个参数现在是 Slot 而非以前的 Bone 了.
-
移除了 Skeleton.Update(float deltaTime)
方法. 请移除对该方法的全部调用, 其函数签名将失效.
-
移除了Slot.AttachmentTime
属性. 请移除对该属性的全部访问.
-
移除了扩展方法AtlasRegion.GetSpineAtlasRect()
的参数includeRotate
(默认为true). 在用户代码中可能从未以includeRotate=false
的方式使用过该方法参数.
-
相较于4.0, 在packing旋转角度等于90度时, 4.1版对调了AtlasRegion.PackedWidth
和AtlasRegion.PackedHeight
.
从4.0升级至4.1的运行时行为更改
关于行为更改的完整列表, 仍请参见Changelog中的C#
和Unity
小节:
https://github.com/EsotericSoftware/spine-runtimes/blob/4.1/CHANGELOG.md#c-2
你可以在该中文页面下载最新的unitypackages: Spine Unity 下载页面
如果你发现有什么解释不清的地方, 或者在指南中有什么内容缺失, 请毫不犹豫地在此跟帖来痛陈高见, 这样我们才能让大家的升级之旅尽可能的更无脑&无痛.
希望诸位喜欢新版本的Spine, 并用它创造出更多令人惊叹的游戏佳作! 🙂