在Unity3D中为条件属性定义符号

时间:2016-11-03 12:06:01

标签: c# unity3d mono conditional

[编辑] 对于因某些原因遇到此页面的人, 现在情况发生了变化。启动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的范围或定义全局符号。

0 个答案:

没有答案