如果是在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,引入。