Unity自定义调试记录器

剪式

总览

本文重点介绍如何实现具有以下功能的自定义调试记录器:

  1. 可以完全关闭/打开日志
  2. 可以关闭/打开日志替代
  3. 跳到日志堆栈的最外面
  4. 快速使用富文本功能

关于Unity的Debug.Log有两个主要问题:

  1. 表现不佳
  2. 没有很好的开关来打开/关闭日志
private bool m_isDebug = false; 
 private void DebugLog(string log) 
{
if (m_isDebug)
{
Debug.Log(log);
}
}

但这会带来另一个麻烦的问题:每次双击日志时,都会跳入该功能。 然后,您需要通过查找堆栈来进行追溯。 下面提供了两种解决此问题的解决方案。

Solution I:Scripting Define Symbol

使用空函数创建Debug Class填充,并使用RELEASE Define进行阻止。

 #if RELEASE 

using UnityEngine;

public static class Debug
{
public static void Log( object message )
{
}
public static void Log( object message, UnityEngine.Object context )
{
}
public static void LogError( object message )
{
}
public static void LogError( object message, UnityEngine.Object context )
{
}
public static void LogException( System.Exception exception )
{
}
public static void LogException( System.Exception exception, UnityEngine.Object context )
{
}
public static void LogWarning( object message )
{
}
public static void LogWarning( object message, UnityEngine.Object context )
{
}
}
#endif

将RELEASE定义添加到“构建设置”中的“脚本定义符号”列中