0x001 需求
很多框架都包含了自己的日志功能,如果我们自己去写框架难免会用到这个功能,如写出Log文件,进行跨平台调试。
0x002 分析
根据上述需求,做出如下分析
经过测试,使用扩展方法去扩展Debug类无效,原因是Debug类是只读属性的。
那么我们只有去重写或者利用命名空间让编译器选择我们的Debug类,从而实现替换unityDebug的效果。
0x003 实现步骤
1.创建Debug类
不需要继承任何类,设置为静态类
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public static class Debug {
}
1.查看UnityEngine.Debug类
查看类中方法及方法的参数,并在我们的Debug类中进行实现。
我们在自己的类中实现,主要实现这几个就可以了,这里我就只实现单参数的=-=
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public static class Debug {
public static void Log(object message)
{
UnityEngine.Debug.Log(message);
}
public static void LogWarning(object message)
{
UnityEngine.Debug.LogWarning(message);
}
public static void LogError(object message)
{
UnityEngine.Debug.LogError(message);
}
}
我们当然可以去做一些前缀之类的= =
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public static class Debug {
public static void Log(object message)
{
UnityEngine.Debug.Log("zhiyuan1:"+message);
}
public static void LogWarning(object message)
{
UnityEngine.Debug.LogWarning("zhiyuan2:" + message);
}
public static void LogError(object message)
{
UnityEngine.Debug.LogError("zhiyuan3:" + message);
}
}
0x004 实现效果
随便新建一个脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour {
// Use this for initialization
void Start () {
Debug.Log("Log");
Debug.LogWarning("LogWarning");
Debug.LogError("LogError");
}
}