在 Unity 中自定义 .csproj 启用可为空引用类型

Der*_*urn 6 c# unity-game-engine

Unity3D 的 2020.2 版本现在支持 C# 8 和可为空引用类型。选择使用此语言功能的默认方式是放入<Nullable>enable</Nullable>您的.csproj文件,但 Unity.csproj每次编译时都会重新生成并删除此行。

是否有插入自定义内容到我的方式.csproj,或者我需要退回到开始的每个文件的繁琐过程#nullable enable

小智 20

我做了 @Fadeway 建议的配置,它适用于在 Unity 本身内构建(2020.3.15f2)。但当使用外部编辑器(在我的例子中是 VSCode)时它不起作用。

但是,通过添加一个Directory.Build.props与项目文件一起命名的新文件.sln,其中包含以下内容:

<Project>
  <PropertyGroup>
    <Nullable>enable</Nullable>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

.csproj它在编辑器中按预期工作,并且在从 Unity 中重新生成文件时不会被覆盖


Fad*_*way 18

一种方法是转到 File->Build Settings..->Player Settings->Player,向下滚动到“其他编译器参数”并添加-nullable+.