.NET/C#项目

在 Visual Studio 项目属性中设置

你可以在项目属性的“生成”页中找到。
如何优雅地在项目中设置条件编译符号? - 图1
如何优雅地在项目中设置条件编译符号? - 图2

使用PlayerSetting自定义宏(平台相关)

要进行自定义的宏,需要在Unity的PlayerSetting中进行设置,多个宏定义间用分号“;”隔开。设置的数据会被存储在项目的ProjectSettings/ProjectSettings.asset文件中。
image.png
由于ProjectSettings/ProjectSettings.asset一般会被纳入版本管理,所以项目的全体成员一般都会同步宏定义。但是有时候存在单独的某些成员,需要自己单独的自定义宏的情况。

使用RSP文件定义宏

平台相关的编译
Unity提供一个方法,可以用一个rsp文件来定义宏。然后将rsp文件不要纳入版本库。这样就可以解决特殊案例中问题。
一般来说开发Unity用的是C#,那么这个rsp文件必须命名为 mcs.rsp 并且放在Assets目录下。使用rsp文件定义宏,只需要每一行输入一个“-define:<宏名称>”即可,比如这里随意增加2个宏定义:
-define:DevTest
-define:UNITY_2017_2_0_P2
输入完成后保存退出,在Unity中对任意一个代码reimort一次,使Unity重新编译。关闭并重新打开代码编辑器就会看到这个DevTest的全局宏已经生效。
mcs.rps是5.5版本或之后才用这个,之前的版本,可能使用:smcs.rsp或gmcs.rsp

  • mcs.rsp都已被Unity安装目录下的mcs.exe预编译处理程序处理的(us.rsp是给us.exe处理的)
  • csc.exe 是c sharp 代码的编译工具

每次对 .rsp 文件进行更改时,都需要重新编译才能使更改生效。可通过更新或重新导入单个脚本(.js 或 .cs)文件来完成此操作。
注意
如果只想修改全局 #define 指令,请使用 Player 设置中的 Scripting Define Symbols__,因为此选项涵盖了所有编译器。如果选择 .rsp__ 文件,则需要为 Unity 使用的每个编译器提供一个文件。
包含在 Editor 安装文件夹中的 mcs 应用程序的“Help”部分中描述了 .rsp 文件的使用方法。可通过运行 mcs -help 获取更多信息。
请注意,.rsp 文件需要与正在调用的编译器匹配。例如:

  • 当针对 .NET 3.5 Equivalent(已弃用)脚本运行时版本时,mcs 与 mcs.rsp 一起使用,
  • 当针对 .NET 4.x Eqivalent 脚本运行时版本编译器时,csc 与 csc.rsp 一起使用。