Unity 中Debug打印的全局注释方式和重写

我们在做项目的时候经常会遇到这样的一种情况,进行打印输出特别多,用来调试错误,但是我们往往会遇到这种情况,项目后期我们往往会去取消那些打印,但是当我们一个一个去取消的话就会显得相对较为麻烦,

现在我告诉大家快速取消注释和打开注释的两种方法:

第一种方法:(重写Debug类)

using System;
using UnityEngine;

public class Debug
{
    public static bool EnableLog = true;
    public static void DrawLine(Vector3 start, Vector3 end, Color color, float duration)
    {
        if (EnableLog)
        {
            UnityEngine.Debug.DrawLine(start, end, color, duration);
        }
    }
    public static void DrawLine(Vector3 start, Vector3 end)
    {
        if (EnableLog)
        {
            UnityEngine.Debug.DrawLine(start, end);
        }
    }
    public static void DrawLine(Vector3 start, Vector3 end, Color color)
    {
        if (EnableLog)
        {
            UnityEngine.Debug.DrawLine(start, end, color);
        }
    }
    public static void Log(object message, UnityEngine.Object context)
    {
        if (EnableLog)
        {
            UnityEngine.Debug.Log(message, context);
        }
    }
    public static void Log(object message)
    {
        if (EnableLog)
        {
            UnityEngine.Debug.Log(message);
        }
    }
    public static void LogAssertion(object message)
    {
        if (EnableLog)
        {
            UnityEngine.Debug.LogAssertion(message);
        }
    }
    public static void LogAssertionFormat(string format, params object[] args)
    {
        if (EnableLog)
        {
            UnityEngine.Debug.LogAssertionFormat(format, args);
        }
    }
    public static void LogError(object message, UnityEngine.Object context)
    {
        if (EnableLog)
        {
            UnityEngine.Debug.LogError(message, context);
        }
    }
    public static void LogError(object message)
    {
        if (EnableLog)
        {
            UnityEngine.Debug.LogError(message);
        }
    }
    public static void LogErrorFormat(string format, params object[] args)
    {
        if (EnableLog)
        {
            UnityEngine.Debug.LogErrorFormat(format, args);
        }
    }
    public static void LogException(Exception exception)
    {
        if (EnableLog)
        {
            UnityEngine.Debug.LogException(exception);
        }
    }
    public static void LogFormat(string format, params object[] args)
    {
        if (EnableLog)
        {
            UnityEngine.Debug.LogFormat(format, args);
        }
    }
    public static void LogWarning(object message)
    {
        if (EnableLog)
        {
            UnityEngine.Debug.LogWarning(message);
        }
    }
    public static void LogWarning(object message, UnityEngine.Object context)
    {
        if (EnableLog)
        {
            UnityEngine.Debug.LogWarning(message, context);
        }
    }
    public static void LogWarningFormat(string format, params object[] args)
    {
        if (EnableLog)
        {
            UnityEngine.Debug.LogWarningFormat(format, args);
        }
    }
}

 第一种方式进行重写之后,我们想要取消其中的打印,就可以直接通过下面代码就可以实现了

 void Start () {
     Debug.EnableLog = false;
     Debug.Log("1111111111");
     }

  

第二种方法:进行项目中的替换功能(这样的话如果碰到Return 输出 会报错)

如下图:

这种方法进行替换的时候碰到一些直接Reutrn的会报错,比如下面这种情况

if(true)
{
  Debug.Log("111111111");
  Return;
}

  

以上两种方式,就是进行打印取消的两种快捷方式,欢迎大家在下面留言给一些更好的建议,同时也欢迎大家在评论区留下自己想要实现的功能,我会去努力帮大家实现,同时会在下一个博客分享出来,

欢迎大家的留言!!!!!!!!!!!!!!!

原文地址:https://www.cnblogs.com/baosong/p/10925302.html

时间: 2024-10-08 10:44:38

Unity 中Debug打印的全局注释方式和重写的相关文章

unity中Debug输出控制

1 需求: (1)选择在界面.console中输出,并且能够设置保存到文档 (2)控制debug是否输出,可以在debug模式下输出,release模式下不输出 2 参考: 谢谢雨松同学的博客:http://www.xuanyusong.com/archives/2782 , 雨松飞天般的想法实在太奇妙了,虽然我现在还没有理解里面的原理.雨松把debug类常用函数封装在debuger类中,然后通过封装DLL的方式解决Log输出后的定位的问题. 3 方案:   3.1  Dll生成 Debug输出

Unite 2018 | 《崩坏3》:在Unity中实现高品质的卡通渲染(下)

http://forum.china.unity3d.com/thread-32273-1-1.html 今天我们继续分享米哈游技术总监贺甲在Unite Beijing 2018大会上的演讲<在Unity上实现高品质卡通渲染的效果>下篇,上篇请点击此处阅读. 下面为演讲内容: 接下来我们就来介绍一下头发的渲染.头发是卡通渲染角色较为重要且独特的部分.我们想要实现根据光源动态变化的高光和阴影渐变,并且这个实现还应具备直观的所见即所得的色彩调节能力. 和皮肤的材质一样,对于头发的漫反射渲染我们同样

Openfire3.8.2在eclipse中Debug方式启动最简单的方式

一.前言 最近打算研究一下Openfire,于是打算最好能够以Debug方式启动Openfire的Server,到网上一搜,还果真早到官网的一篇文章来: http://community.igniterealtime.org/docs/DOC-1020 网上很多朋友按照这个教程去搭建,有的说文章有瑕疵的地方,姑且不说瑕疵,就这很长的步骤令人厌恶.本来我想按照这个教程去做,但是,单使用 Eclpse SVN下载令人崩溃,一直显示进度为0%,后来换了TortoiseSVN好一些,下载了两次,每次都花

菜鸟学习 - Unity中的热更新 - Lua和C#通信

孙广东 2015-4-6 热更新我是个菜鸟,感谢网上的各位的奉献,这次又当一回搬运工. 准备: 1.了解Lua的语法 推荐书籍<Lua程序设计 第二版> 2.使用ULua插件进行通信 尽量早上真机.因为Bug问题特别多. 大杂烩: 更新LUa其实也是更新资源. Lua被看作一个资源么.Lua代码都是运行时才编译的,不运行的时候就如同一张图片.一段音频一样,都是文件资源:所以更新逻辑只需要更新脚本,不需要再编译,因而Lua能轻松实现"热更新".运行效率由于使用反射,所以成为它

移植UE4的模型操作到Unity中

最近在Unity上要写一个东东,功能差不多就是在Unity编辑器上的旋转,移动这些,在手机上也能比较容易操作最好,原来用Axiom3D写过一个类似的,有许多位置并不好用,刚好在研究UE4的源码,在模型操作上,很多位置都解决了,其实大家可以对比下,在UE4与Unity中,UE4的如移动和旋转都要正确和好用. 如下是根据UE4中简单移植过来的效果图,差不多已经够用,UE4相关源码主要在EditorViewportClient与UnrealWidget. 介绍一下这个组件主要功能. 1. 模型本地空间

【Unity游戏开发】用C#和Lua实现Unity中的事件分发机制EventDispatcher

一.简介 最近马三换了一家大公司工作,公司制度规范了一些,因此平时的业余时间多了不少.但是人却懒了下来,最近这一个月都没怎么研究新技术,博客写得也是拖拖拉拉,周六周天就躺尸在家看帖子.看小说,要么就是吃鸡,唉!真是罪过罪过.希望能从这篇博客开始有些改善吧,尽量少玩耍,还是多学习吧~ 好了扯得有点远了,来说说我们今天博客的主题——“用C#和Lua实现Unity中的事件分发机制”,事件分发机制或者叫事件监听派发系统,在每个游戏框架中都是不可或缺的一个模块.我们可以用它来解耦,监听网络消息,或者做一些

Unity中使用协程进行服务端数据验证手段

近期在做项目中的个人中心的一些事情,用户头像上传,下载,本地缓存,二级缓存,压缩,这些都要做,麻雀虽小五脏俱全啊,也是写的浑浑噩噩的, 当我们在上传用户头像的时候,向服务端发送上传头像请求之前,一般都会做一次验证,向服务端获取token验证信息,来确保非法上传,如果不做这个那么会有非法用户上传非法图像,使你的服务器 带来未知的灾难. 而验证的逻辑很好写,并没有什么难度,比如: Server.SendMessage("获取token"); Client.Receive(string to

(Unity)Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进展混淆,避免被反编译

Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译. 1.打开VS,博主所用版本是Visual Studio 2013. 2.新建一个VC项目,选择类库,取名为JefferyChan,具体步骤如下图: 3.因为要调用Unity中的相关文件,所以这里要引入外部文件.首先在Unity的安装文件夹中找到UnityEngine.dll,我的路径是:D:\Program Files (x86)\Unity\Editor\Data\Managed 如

关于Unity中的光照(七)

全局光照 GI 这里所说的反射就是,一个红色的物体,当太阳照射它的时候,它周围的物体也会变得有点红. 1:Realtime每帧都会计算光照,实时光照是不会反射的,所以它的光影显得单调;2:Baked GI:通过烘培光照贴图的方式获得很好的光照效果,无法实时的改变光照;3: 预先计算全局光照: Precumputed Realtime GI 实时光照不能很好的显示间接光照的效果, 比如实时光照到一个红色的物体上. 红色物体发生反射,本来如果是实时不会有反射,如果使用预先光照,那么会预先计算好静态物