Skip to main content

自定义Unity编译内容

· One min read
Ferdinand Su

与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里增加一个对应条目即可。