Unity 中宏定义两种用法

宏定义两种用法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#define ABC
#define DEF

using UnityEngine;
using System.Collections;
using System.Text;

public class EasyTest : MonoBehaviour {

void Start() {
// 调用AAA方法和CCC方法的时候,无需加 #if 宏定义判断,不影响代码编译
AAA();
CCC();

// 调用BBB方法的时候,必须加 #if ABC 宏定义判断,否则,无ABC宏定义的时候影响代码编译
#if ABC
BBB();
#endif
}

/// <summary>
/// 当有ABC宏定义的时候,该方法生效
/// </summary>
[System.Diagnostics.Conditional("ABC")]
public void AAA() {
Debug.Log("AAA");
}

/// <summary>
/// 当有ABC宏定义 或者 有DEF宏定义的时候,该方法生效
/// </summary>
[System.Diagnostics.Conditional("ABC")]
[System.Diagnostics.Conditional("DEF")]
public void CCC() {
Debug.Log("CCC");
}

#if ABC
public void BBB() {
Debug.Log("BBB");
}
#endif
}

宏定义既可以在代码里面定义,也可以在 Player Settings 里面的 Scripting Define Symbols 里面定义。