wiige

本文于2022-03-23译自官方的Spine-Unity 3.6 to 3.7 Upgrade Guide, 由作者@Harald授权翻译, 本译本随官方文档更新.

This Guide was translated from Spine-Unity 3.6 to 3.7 Upgrade Guide, authorized by the writer @Harald at 2022-03-23.Update simultaneously with original post.

----
从Spine-Unity 3.6升级至3.7的建议步骤:
1. 关闭所有打开的场景并创建一个新的空白场景, 且不选中任何对象. 这是为了确保没有活动的Spine对象.
2. 记下对Spine-Unity运行时所做的全部自定义修改. 把这些修改做个备份.
3. 删除你的旧"Spine"文件夹.
4. 导入最新的Spine-Unity 3.7 unitypackage.
5. 可选操作: 关闭项目和Unity, 然后再次打开.
6. 如果在代码中使用了SkeletonAnimator, 要把它改为"SkeletonMecanim". 参见下文的详细改动.

从Spine 3.6导出的Json skeleton 数据可以在3.7版的运行时中读取.
二进制skeleton数据需要用Spine 3.7重新导出.

变更须知:

1. SkeletonMecanim
SkeletonAnimator已被重命名为SkeletonMecanim

这是为了使其更易读,并在使用它时最大限度地提高代码不全的效率.
现有的prefabs和场景可保持原样. 但代码需用"SkeletonMecanim"替换"SkeletonAnimator".

注意这不是SkeletonAnimation.
SkeletonAnimation仍是SkeletonAnimation, 它保持不变.
只是SkeletonAnimator被重命名为SkeletonMecanim.
它们是不同的组件.

2. 着色器
Spine-Unity的基本着色器现在可以通过在Material检查器中勾选"Straight Alpha Texture "复选框来实现straight-alpha纹理. 这将把着色器编译为一个副本着色器(关键字 _STRAIGHT_ALPHA_INPUT).

Spine/SkeletonGraphic (Premultiply Alpha)被重命名为Spine/SkeletonGraphic
Spine/SkeletonGraphic Tint Black (Premultiply Alpha)重命名为Spine/SkeletonGraphic Tint Black

移除了旧版的straight alpha专用着色器.

3. 运行时和编辑器, 以及程序集(Assembly)定义
如果你想利用新的文件夹编排来组织程序集定义文件, 你可以删除旧的Spine-Unity运行时文件夹并导入最新的unitypackage.
请确保你如常地备份了项目, 以防在升级过程中丢失更改或引发问题.

4. SpineAtlasAsset
AtlasAsset已被重新命名为SpineAtlasAsset. 这阐明了atlas来源于Spine/libGDX atlas而非其他库. 即将推出的可选做法是使用Unity的SpriteAtlas进行打包, 并允许其他atlas来源.
组件, prefabs和资产上的现有字段保持不变.

5. Skeleton.FlipX/FlipY现在为Skeleton.ScaleX/ScaleY
Skeleton类现在用ScaleX和ScaleY取代了FlipX和FlipY.

旧版行为的等价写法总结如下:
// To get the value
bool flipX = skeleton.ScaleX < 0;

// To set the value.
skeleton.ScaleX = flipX ? -1f : 1f;
FlipX/FlipY属性在beta版中被标记为过时属性, 但在正式发布时将被移除.

6. SetPosition现在为SetLocalPosition
Bone.SetPosition扩展方法被重命名为Bone.SetLocalPosition以提高辨析度.

7. SkeletonDataModifiers与BlendModeMaterials资产

SkeletonDataAssets现在是一个可扩展的资产系统, 用于在加载SkeletonData后对其进行额外处理. 它被称为SkeletonDataModifier资产.

其中之一是BlendModeMaterials资产. 该类资产为具有特殊blend模式的槽位中的附件使用替代Materials, 原理是它能使用存储在资产中的模板Material生成所需的Material.

它生成Screen和Multiply(还可选Additive) blend模式槽位所需的material, 然后将生成的material分配给有特殊blend模式槽位中定义的附件.

相较于3.6, BlendModeMaterials资产是一个性能更强的解决方案, 而与旧的SlotBlendModes组件相比, 它能更好地应付multi-texture情况. SlotBlendModes在需要进行实例级material定制时仍然有用, 并且不会从运行时中移除. 然而在一般的大多数情况下, BlendModeMaterials就完全足够了.

这个新模块搭配了一个默认的"Default BlendModeMaterials"资产, 以及开箱即用的Materials. 要使用它, 只需将这个 "Default BlendModeMaterials"资产在检查器中添加到SkeletonDataAsset的新"Skeleton Data Modifiers"列表中即可.
如果想要进阶配置, 可以复制默认资产的副本或新创建一个资产, 然后设置你自定义的materials和着色器作为模板.

若有多个blend模式相同的槽位, 且使用了多个在同一个atlas中的附件, 它们将分配相同的生成Material.

和以前一样, 多种blend模式会导致skeleton网格的渲染使用多种materials. 而Unity中的多matrial的MeshRenderers会造成更多的绘制调用和相关行为.

// 以后补充更多内容...

现在可以从下载页下载beta版的unitypackage: Spine Unity下载页
更多改进信息, 请参见: spine-runtimes/CHANGELOG.md at 3.7-beta
Аватара пользователя
wiige
  • Сообщения: 40


Вернуться в 中国Spine用户