简述
在特殊环境下,Debug不能满足要求,所以,写了一个简单的Debug拓展,留作备份。
用法
在vs中打包成dll文件,放入Unity中即可
详细代码
using System;
using System.Text;
using UnityEngine;
namespace LDll
{
/// <summary>
/// Log 的等级,用于控制显示什么级别的日志
/// </summary>
public enum Log
{
/// <summary>
/// 普通打印格式
/// </summary>
Normal = 0,
/// <summary>
/// 警告打印格式
/// </summary>
Warning = 1,
/// <summary>
/// 错误信息打印格式
/// </summary>
Error = 2,
}
/// <summary>
/// <para>Unity Debug 扩展类,支持时间、颜色打印 </para>
/// </summary>
public class LDebug
{
/// <summary>
/// 显示时间
/// </summary>
public static bool ShowTime = true;
/// <summary>
/// 是否记录到文件中
/// </summary>
public static bool isRecordToFile = false;
private static string GetCurrentTime
{
get { return DateTime.Now.ToString("[HH:mm:ss]: "); }
}
private static string GetDebugFormat()
{
StringBuilder str = new StringBuilder();
if (ShowTime)
{
str.Append(DateTime.Now.ToString("[HH:mm:ss]"));
}
str.Append(": ");
return str.ToString();
}
/// <summary>
/// 日志打印
/// </summary>
/// <param name="str">日志内容</param>
public static void Log(string str)
{
LogShow(LDll.Log.Normal, "white", str);
}
/// <summary>
/// 日志打印
/// </summary>
/// <param name="format">内容格式</param>
/// <param name="args">日志内容</param>
public static void Log(string format, params object[] args)
{
LogShow(LDll.Log.Normal, "white", string.Format(format, args));
}
/// <summary>
/// 警告日志显示
/// </summary>
/// <param name="str">日志内容</param>
public static void LogWarning(string str)
{
LogShow(LDll.Log.Warning, "yellow", str);
}
/// <summary>
/// 警告日志显示
/// </summary>
/// <param name="format">内容格式</param>
/// <param name="args">日志内容</param>
public static void LogWarning(string format, params object[] args)
{
LogShow(LDll.Log.Warning, "yellow", string.Format(format, args));
}
/// <summary>
/// 错误日志显示
/// </summary>
/// <param name="str">日志内容</param>
public static void LogError(string str)
{
LogShow(LDll.Log.Error, "red", str);
}
/// <summary>
/// 错误日志显示
/// </summary>
/// <param name="format">内容格式</param>
/// <param name="args">日志内容</param>
public static void LogError(string format, params object[] args)
{
LogShow(LDll.Log.Error, "red", string.Format(format, args));
}
/// <summary>
/// 自定义显示格式
/// </summary>
/// <param name="log">日志级别</param>
/// <param name="color">日志颜色代码,不支持自定义,可去查看Unity支持的富文本颜色代码 </param>
/// <param name="str">日志内容</param>
public static void LogCustom(Log log, string color, string str)
{
LogShow(log, color, str);
}
/// <summary>
/// 自定义显示格式
/// </summary>
/// <param name="log">日志级别</param>
/// <param name="color">日志颜色代码,不支持自定义,可去查看Unity支持的富文本颜色代码 </param>
/// <param name="format">内容格式</param>
/// <param name="args">日志内容</param>
public static void LogCustom(Log log, string color, string format, params object[] args)
{
LogShow(log, color, string.Format(format, args));
}
private static void LogShow(Log log, string color, string str)
{
string tempstr = string.Format("{0}<color={1}>{2}</color>", GetCurrentTime, color, str);
switch (log)
{
case LDll.Log.Normal:
Debug.Log(tempstr);
break;
case LDll.Log.Warning:
Debug.LogWarning(tempstr);
break;
case LDll.Log.Error:
Debug.LogError(tempstr);
break;
}
}
}
}