Test code
using UnityEngine;
public class Test1 : MonoBehaviour
{
void Awake()
{
Debug.unityLogger.logEnabled = false;
Debug.LogWarning(Int2String(123));
}
[System.Diagnostics.Conditional("DEBUG_ENABLE")]
private void MyLogWarning(string str)
{
Debug.LogWarning(str);
}
private string Int2String(int t)
{
Debug.LogError("Int2String() 被调用");
return t.ToString();
}
}
实验结果
- 提高Debug的过滤等级并不会阻断对Debug的调用,仅仅是不会在Console输出日志。
- 关闭Debug与“嵌套Debug再添加Conditional标签”的方式都能阻断对Debug的调用,但是后者较为灵活,能对特定等级的Log进行过滤,利用另外Conditional特性能使MyLogWarning() API以及对其的调用不会编译是到包内。
- 在设计Unity Debug工具时可以灵活利用以上做法的优劣对 调试包、正式包的日志输出做差异化处理。