与Unity Editor环境不同,在生成Unity Build时,Unity只会选择平台对应部分的代码构建,而跳过非本平台的部分。如,WindowsBuild只会包含Windows相关的内容,不会有Android的内容。那如果我想在LinuxBuild中包括Windows相关的API,该怎么办呢?
观察源代码发现,Unity使用C#宏来控制条件编译:
#if UNITY_EDITOR || UNITY_ANDROID || PACKAGE_DOCS_GENERATION
因为不支持字符串替换,所以C#宏的存在感还是蛮低的......;因此,只需在Build时,让编译器开启这种宏就可以了,具体就是在ProjectSettings
-Player
-Other Settings
-Script Compilation
-Scripting Define Symbols
里增加一个对应条目即可。