[编辑] 对于因某些原因遇到此页面的人, 现在情况发生了变化。启动Unity 2017时,无论文件位置如何,都必须在两个文件(Callee和Caller)中定义相同的符号。 以下是Unity 2017之前的问题。 我将此记录下来。
在标准C#中,如果我想调用带有条件属性的方法,我必须在方法为 CALLED 的文件中为其定义符号。但在Unity中,似乎有所不同。它仅在我将行放在方法 EXISTS 的文件中时才有效。让我们说,像这样的Unity项目中有两个脚本文件。
ClassForMySymbol.cs
class ClassForMySymbol {
[System.Diagnostics.Conditional("MY_SYMBOL")]
public static void Print() {
Debug.Log ("This method is called.");
}
}
test.cs中
public class Test : MonoBehaviour {
void Start() {
ClassForMySymbol.Print();
}
}
这只适用于我定义" MY_SYMBOL"在 ClassForMySymbol.cs 但不是 Test.cs 。
我不知道发生了什么。这是正常的吗?我在这里缺少什么?
PS。这个问题不是关于#define的范围或定义全局符号。