本页面列出了从早期版本的 Unity 升级到 2018.3 版时可能对现有项目造成影响的更改
flex-grow、flex-shrink 和 flex-basis 的参数。flex-shrink 和 flex-basis 参数是可选参数。如果省略,flex-basis 默认为 0,flex-shrink 默认为 1。flex: N 等同于 flex N 0 auto。现在遵循 CSS 标准,等同于 flex: N 1 0。为了保留旧语义,您应该在 USS 文件中将所有 flex: N 指令替换为 flex: N 0 auto。物理行为已改变,一些项目的行为可能会不同于新版本。特别是以下情况:
Unity 2018.3 包含一些粒子错误修复,这可能会影响在以前版本中创建的项目。
在 2018.3 版之前,Unity Editor 在编译项目中的 C# 文件时使用 Mono C# 编译器 (mcs)。从 2018.3 版开始,以新脚本运行时 (.NET 4.x Equivalent) 为目标的项目使用 Roslyn C# 编译器 (csc)。切换到 Roslyn 后可能会发现行为差异:
csc.rsp。请参阅 PlatformDependentCompilation。在 Editor 中无法再编译 UnityScript (.js) 和 Boo (.boo) 脚本文件。
有关更多信息,请参阅发表于 2017 年 8 月的这篇博客文章;并可使用 unityscript2csharp 工具将 UnityScript 转换为 C#。
Animator 根运动播放功能已稍作更改,旨在纠正在 Animation 窗口中创作根运动动画 (Root Motion Animations) 时出现的某些不一致之处。
| 情况 | 生成根运动 | Animator.applyRootMotion | 2018.2 | 2018.3 |
|---|---|---|---|---|
| A | 是 | 是 | 在根变换 (Root Transform) 上累计应用根运动。 | 与 2018.2 相同 |
| B | 否 | 否 | 应用 AnimationClip 中编写的位置 (Position)、旋转 (Rotation) 和缩放 (Scale) 曲线。 | 与 2018.2 相同 |
| C* | 是 | 否 | 无根变换运动 | 应用 AnimationClip 中编写的位置 (Position)、旋转 (Rotation) 和缩放 (Scale)。 |
| D* | 否 | 是 | 无根变换运动 | 在根 (Root) 上累计应用根运动。 |
对于情况 C 和 D,要在 2018.3 中获得相同的结果,您需要实现 OnAnimatorMove,然后在不想应用根运动的情况下放弃 Animator.deltaPosition 和 Animator.deltaRotation。
如果项目使用 applyRootMotion 使根变换上的位置 (Position)、旋转 (Rotation) 和缩放动画 (Scale Animation) 进行“静音”,则需要手动覆盖根变换 (Root Transform) 属性。