封装Debug,控制全局Debug的输出,保持定位脚本位置

如果是在Unity中单单的用脚本类来封装Debug,添加一个全局控制的变量的话,是可以通过设置这个变量来解决Unity打包后不输出这些Debug。但是在Editor中双击输出日志就会定位到封装的Debug类中,就显然的就很不理想了。解决办法就是把这个封装的类变成dll文件后再导入。

一、dll文件的制作

新建dll类库项目,修改项目目标框架为.Net3.5,引入UnityEngine.dll(可以在Unity安装目录下搜索找到),然后新建public的类进行封装。

using UnityEngine;

namespace DebugLog
{
    public class DebugLog
    {
        public static DebugLog UI = new DebugLog("UI");

        private string module;
        public bool IsOut = true;

        public DebugLog(string module)
        {
            this.module = module;
        }

        public void Log(string mes)
        {
            if(IsOut)
            Debug.Log(module+ ":" + mes);
        }

    }
}

二、使用

将生成的dll拉进Unity项目中,使用这个类输出日志,具体的其他实际使用的细节就忽略了。

using UnityEngine;

public class TestDebugLog : MonoBehaviour {
    
	void Start () {
        DebugLog.DebugLog.UI.Log("Hello");
        DebugLog.DebugLog.UI.IsOut = false;
        DebugLog.DebugLog.UI.Log("world");
    }
}

只输出了前面的Hello,只要将IsOut的设置放在全部输出的前面,就可以实现控制了。

当然还可以自定义输出日志模块的文字样式等。

缺点就是,每次添加模块或则做一些修改,都需要重新生成dll,引入。


首页 我的博客
粤ICP备17103704号