必要措施:
如果您在您所在位置大量使用Union,请尽快将Workspace.UnionsScaleNonuniformly更改为 启用 (如果工作室有迁移功能的话则运行迁移),以避免潜在中断。
概述
目前,如果使用类似内容调整Union和MeshPart的大小,您会发现它们具有不同的缩放行为。具体来说,Union的缩放呈宽银幕模式,使得其内容仅会进行一致缩放。
在使用非一致性Union的情况下,“Union”将具有与“MeshPart”相同的缩放行为,允许内容进行非一致性缩放。
这项功能已经测试了一段时间,现在可以进行正式发布。
变更
我们将在工作区引入一个分三阶段上线的UnionsScaleNonformly功能。该上线功能将会替换“非一致性Union”测试版的功能。
如果您正在使用测试功能的话,为了继续使用该功能,请启用上线功能。
-
如果UnionsScaleNonUniformly设置为 “禁用”
。使用类似内容调整Union和MeshPart的大小时,您将发现它们具有不同的缩放行为。具体来说,Union缩放呈宽银幕模式,使得其内容仅会进行一致缩放。
。由于我们目前意识到的一个bug,即使Union小于0.05stud,Union visuals/碰撞几何结构也会在尺寸为0.05stud处收紧。
-
如果UnionsScaleNonUniformly设置为 “启用” :
。 使用类似内容调整Union和MeshPart的大小时,它们将具有相同的缩放行为,并且都不一致地进行扩展以填充其边界。
。最小部件尺寸的bug已修复,且Union visuals/碰撞几何结构将会完全匹配部件尺寸,可匹配的最小尺寸为0.001studs。
- 如果UnionsScaleNonUniformly保留为 默认 ,则缩放行为取决于上线处于哪个阶段,最初将会被视作 禁用 ,然后将会被视作 启用 (请参阅下面的“上线计划”)。
自动迁移行为
很多人都认识到这一变更带来了巨大变化。
虽然并非所有地方都使用Union,而且目前绝大多数Union是一致缩放的(因此不会在转换期间受到影响), 但手动调整大小至应用宽银幕模式缩放的任何 Union (通过属性面板或社区插件)将会受到影响:
-
任何先前以宽银幕模式缩放的Union都会扩展以填充其边界,而不是呈宽银幕模式(对比上述截图中的“ 禁用 → 启用 ”转换)。
-
每个轴上小于0.05stud的一致缩放的Union将在视觉上收缩,以精确匹配部件尺寸,而不会限制在0.05stud尺寸范围内。
为简化转换, 我们引入了自动迁移行为,在将 Workspace.UnionsScaleNonuniformly 从禁用或默认变更为启用时,该行为将根据需要为您调整您所在位置的 Union 的大小。 执行此操作时,您将看到以下弹出窗口,为您提供运行一次性迁移的机会:
正如弹出窗口所示,迁移只能在以前的缩放行为下创建的 旧 内容上运行。如果您已经在“非一致性Union测试版”下工作,您应该拒绝使用迁移。
自动迁移无法帮助依赖于特定Union大小的脚本交互,或者在运行时调整Union大小,因此,如果您认为您可能正在执行这些操作,请在将UnionsScaleNonuniformly设置为 启用 后重新检查您的行为。
上线计划
1) 工作区标志可用 —2022 年 8 月 15 日
UnionsScaleNonuniformly属性在工作区下可用,请将其设置为 启用 ,如果您所在位置使用Union,请尽快将其设置为启用并运行迁移!(如果您的代码中有一些重要的东西需要时间调整,请 禁用 这个功能)。
2) 默认启用工作区标志 —2022 年 8 月 22 日
2022年8月22日,任何未明确更改UnionsScaleNoniformly且仍将其设置为 默认 的地方将自动为其Union进行不一致缩放。如上所述,对于某些地方来说,这将带来破坏性的变化,但几乎在所有情况下,这些问题都可以通过在工作室中执行自动迁移来解决。
3) 删除工作区标记 — 待定
最终,在所有明确禁用该功能的人都处理了阻止他们迁移的问题之后,标记将会被移除,Union将永远不一致地进行缩放。
新 Union 属性 MeshSize
为了使插件在非一致缩放过的Union上有效运行,此前仅在MeshParts上可用的MeshSize属性现在也可用于Union,并且将与该Union初次创建时的大小相当。
在分离之前,插件可以设置union.Size=union.MeshSize,以保证union能够彻底分离。(“应用缩放”行为将用于解决插件在无法彻底分离的对象上使用Separate的情况)
常见问题
我的体验会因此中断吗 ?
- 大部分情况下不会。即使您不运行迁移,从我们的测试反馈和分析来看,绝大多数union要么不会受到影响,要么只会以不影响游戏的方式略微改变。如果您想要保证安全,请运行迁移。
我没有看到迁移弹出窗口。这个窗口在哪里 ?
- 如果您将属性更改为“启用”之后没有看到弹出窗口,这意味着您的任何union都不需要迁移,无需担心!
为什么不自动进行迁移 ?
- 这是我们原本计划采用的一种方法,但由于迁移在极少数情况下弊大于利,而且我们一开始也不想有太多地方受到负面影响,因此我们选择了手动迁移的方法。而且这个改变也会修正一定数量的无意中通过宽银幕模式进行缩放的union,这个因素也促使我们作出了这一决定。
我可以多次使用迁移吗 ?
- 是的,如果将UnionsScaleNonuniformly设置回 “ 禁用 ” ,则重新启用时将再次提供迁移。
试运行后迁移还可以继续使用吗 ?
- 仍然可以!迁移器不会使用任何特权信息,并且可以重新作为社区插件执行,以便后续在遗留内容上使用。在移除试运行功能时,我们将会为迁移器共享一个Luau代码片段。