避免针对未定义的#if代码

时间:2019-10-04 14:24:58

标签: c# unity3d

我正在一个Unity(v2019.1.11)项目中,在这种情况下,我通过以下情况从一个存在命名空间(git submodule)的另一个项目中通过CustomNameSpace包含了一个类:

#if FLAG
using CustomNameSpace;

public class Foo
{

}
#endif

在我当前的项目中,CustomNameSpace不存在。因此,我认为除非在Unity的播放器设置中定义FLAG,否则包含此代码的文件将被视为空文件。但是,即使FLAG未定义,Unity也会为缺少的名称空间抛出错误。

我想知道如何正确避免代码文件被Unity编译甚至检查。

编辑
我已经检查过了:
-FLAG未在Unity播放器设置中定义
-FLAG未在解决方案的任何代码文件中定义
-FLAG未按照here

的描述在Assets\csc.rsp中定义

1 个答案:

答案 0 :(得分:1)

此标志是在脚本中或unity的项目设置中的项目中定义的。

您需要找到它的定义位置并删除该定义,以免unity不会编译其中的代码。

1)可以在统一项目设置窗口中对其进行定义,以找到它:编辑=>项目设置=>播放器选项卡,然后在此screenshot的绿色框中找到文本输入字段,您可能会发现在那里定义了FLAG符号,将其删除。

2)或可以在代码中的某个位置进行定义以找到它:我将假定您使用Visual Studio作为IDE,按CTRL + SHIFT + F并在整个解决方案中搜索此行代码{{1} }这行代码定义了您的标志,并使团结一致认识到该标志当前为true,因此编译了其中的代码,这是您要删除的行。