本页面列出了从早期版本的 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) 属性。