Unity Log 之 简单封装Debug函数宏定义控制打印

2025-11-05 21:28:58

1、打开Unity,新建一个空工程,具体如下图

Unity Log 之 简单封装Debug函数宏定义控制打印

2、在工程中,新建一个脚本,用来封装Debug函数,然后双击或者右键编辑脚本,具体如下图

Unity Log 之 简单封装Debug函数宏定义控制打印

3、脚本作为一个密封类,通过宏定义开控制是否开启对应的打印信息,这里简单的封装:Log,LogWarning,LogError,具体如下 图

Unity Log 之 简单封装Debug函数宏定义控制打印

Unity Log 之 简单封装Debug函数宏定义控制打印

4、脚本的具体内容如下:

using System;

using UnityEngine;

/// <summary>

/// 封装 Debug 调试,通过宏定义来控制是否开启 Debug 的相关打印

/// </summary>

public sealed class DebugHelper

{

    /// <summary>

    /// Debug.Log 的封装

    /// 定义了 LOG 宏,才开启打印

    /// </summary>

    /// <param name="message">打印的内容</param>

    /// <param name="context">上下文</param>

    public static void Log(object message, UnityEngine.Object context = null) {

#if LOG     // 定义LOG宏,才走该处

        // 添加 时间和对应的内容 Debug 打印

        Debug.Log(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff")+"  " +message, context);

#endif

    }

    /// <summary>

    /// Debug.LogWarning 的封装

    /// 定义了 LOGWARNING 宏,才开启打印

    /// </summary>

    /// <param name="message">打印的内容</param>

    /// <param name="context">上下文</param>

    public static void LogWarning(object message, UnityEngine.Object context = null)

    {

#if LOGWARNING      // LOGWARNING,才走该处

        // 添加 时间和对应的内容 Debug 打印

        Debug.LogWarning(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff") + "  " + message, context);

#endif

    }

    /// <summary>

    /// Debug.LogError 的封装

    /// 定义了 LOGERROR 宏,才开启打印

    /// </summary>

    /// <param name="message">打印的内容</param>

    /// <param name="context">上下文</param>

    public static void LogError(object message, UnityEngine.Object context = null)

    {

#if LOGERROR        // LOGERROR,才走该处

        // 添加 时间和对应的内容 Debug 打印

        Debug.LogError(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff") + "  " + message, context);

#endif

    }    

}

5、然后新建一个测试脚本,通过按下 空格键,来调用封装的接口,具体如下图

Unity Log 之 简单封装Debug函数宏定义控制打印

6、using UnityEngine;

public class Test : MonoBehaviour {

// Use this for initialization

void Start () {

        

}

    // Update is called once per frame

    void Update() {

        if (Input.GetKeyDown(KeyCode.Space)) {

            DebugHelper.Log("Log 的 打印测试");

            DebugHelper.LogError("LogError 的 打印测试");

            DebugHelper.LogWarning("LogWarning 的 打印测试");

        }

}

}

7、在 Player Setting 中的 other Setting 中的 Scripting Define Symbols 中添加对应的宏定义 LOG,LOGWARNING,LOGERROR,具体如下图

Unity Log 之 简单封装Debug函数宏定义控制打印

8、然后在场景中个,新建一个GameObject,把 Test 测试脚本,具体如下图

Unity Log 之 简单封装Debug函数宏定义控制打印

9、运行场景,按下 空格键,在 console 中就会有三个接口的打印,具体如下图

Unity Log 之 简单封装Debug函数宏定义控制打印

10、 把Player Setting 中的 other Setting 中的 Scripting Define Symbols 中 其他两个宏定义删掉LOGWARNING,LOGERROR,仅留下 LOG 宏定义,具体如下图

Unity Log 之 简单封装Debug函数宏定义控制打印

11、再次在Game中按下 空格键,现在Console只打印了 Debug.Log 的打印,实现了宏定义来控制输出打印,具体如下图

Unity Log 之 简单封装Debug函数宏定义控制打印

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢