Unity中打开或关闭所有的debug输出

Unity中打开或关闭所有debug输出


在制作项目的过程中经常需要debug 输出一些数据以供测试或者调试bug,在调试完成后想要一一取消或者删除这些debug输出是比较麻烦的,unity的API中提供了一个语句来屏蔽所有的debug输出。

  Debug.logger.logEnabled = false;

当 logEnabled 设置为false后,在该语句之后所有的Log输出都会被屏蔽掉,可以禁用其他脚本中的输出语句,跳转场景后依然起作用;

接下来是测试阶段:

1、测试是否在同一个脚本中是否可以屏蔽debug输出

void Start () {
           Debug.Log("Hello   "+SceneManager.GetActiveScene().name);
           Debug.LogError("我报错了!  " + SceneManager.GetActiveScene().name);
           Debug.logger.logEnabled = false;
           Debug.Log("world   " + SceneManager.GetActiveScene().name);
           Debug.LogError("出错了  " + SceneManager.GetActiveScene().name);
      
 }

输出结果显示,当 logEnabled 设置为false后,之后的debug被屏蔽了。在这里插入图片描述
2、跨脚本,调用其他脚本方法及并行执行时的情况;

脚本1:

public  DebugTest2 _debugTest2Scripts;
 // Use this for initialization
 void Start () {
           Debug.Log("Hello   "+SceneManager.GetActiveScene().name);
           Debug.LogError("我报错了!  " + SceneManager.GetActiveScene().name);
           Debug.logger.logEnabled = false;
           _debugTest2Scripts.Init();   //调用其他脚本
           Debug.Log("world   " + SceneManager.GetActiveScene().name);
           Debug.LogError("出错了  " + SceneManager.GetActiveScene().name);
      
 }

脚本2:

 int i = 0;
 // Use this for initialization
 void Start () {
  
 }
 
 // Update is called once per frame
 void Update () {
  if(i==0)
        {
            Debug.Log("请再等一世吧!" + SceneManager.GetActiveScene().name);
            i++;
        }
 }
    public  void Init()
    {
        Debug.Log("痴情的妖怪啊!" + SceneManager.GetActiveScene().name);
    }

当 logEnabled 设置为true时,运行结果显示:
在这里插入图片描述

当 logEnabled 设置为false时,运行结果显示:
在这里插入图片描述
3、跳转场景后的情况

新建一个场景,创建脚本文件,在Start方法中输出两句话;

void Start () {
        Debug.Log("追风的少年   " + SceneManager.GetActiveScene().name);
        Debug.LogError("哎呦,我报错!   " + SceneManager.GetActiveScene().name);
 }

当 logEnabled 设置为true时,运行结果显示:
在这里插入图片描述

当 logEnabled 设置为false时,运行结果显示:
在这里插入图片描述
总结:通过测试可以得知,当 logEnabled 设置为false时,所有类型的debug输出将会屏蔽,但不会影响程序中其他报错输出。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果 Unity 的 `Debug.Log` 方法无法将日志信息输出到控制台或日志文件,可能是以下原因之一: 1. 该语句在代码未被执行。请确保在代码调用了 `Debug.Log` 方法,并且该语句被执行。 2. 在 Unity 编辑器,您可能已经禁用了控制台输出。请确保在编辑器的 Console 窗口选择了“All”选项卡,以查看所有日志输出。如果您选择了“Error”或“Warning”选项卡,那么除了错误或警告消息以外的其他消息将不会输出。 3. 在构建项目时,您可能已经禁用了日志输出。在构建项目时,请确保在“Player Settings”的“Other Settings”下,将“Scripting Define Symbols”设置为“UNITY_EDITOR”。这将确保在构建的应用程序,`Debug.Log` 方法将被正确执行并输出日志信息。 希望这些解决方法能够帮助您解决 `Debug.Log` 无法输出日志的问题。 ### 回答2: 在使用Unity进行游戏开发时,遇到Unitydebug.log打印不出来的问题,通常有以下几个原因导致。 首先,检查是否在正确的位置调用了Debug.Log()。这个函数需要在脚本调用,如果没有被正确的调用,那么打印信息自然是无法输出的。应该检查一下调用Debug.Log()的语句是否正确、是否在需要的位置被调用。 其次,检查是否在Console正确配置了过滤器。在Unity的控制台,我们需要使用过滤器来确定我们需要查看的日志。确保已经选了正确的日志过滤信息(比如点击Error或Warning等等),如果我们没有正确设置过滤器,那么我们的日志信息就有可能和我们期望的不同。 此外,还需要确保在打开编辑器的“Console”窗口时,我们选的是正确的日志类型。这个很重要,如果我们没有选正确的日志类型,我们的日志信息将不会出现在控制台。 最后,如果以上步骤都没解决问题,我们就需要检查一下我们的Unity版本和编译环境是否正常。有时候,一些与我们开发环境相关的问题会影响到日志打印信息的输出。 总之,Unity debug.log打印不出来通常是由问题出在调用的位置,日志过滤器配置不正确,控制台没有选正确的日志类型,或开发环境存在其他问题所致。通过逐一排除这些问题,我们可以找到问题所在,为日后进行Unity开发提供更好的基础。 ### 回答3: 关于Unity Debug.Log无法打印输出的问题,可能的原因如下: 1.代码没有执行到打印语句 首先要确认代码是否执行到了需要打印输出的语句,可以在需要打印输出的语句前加上一句Debug.Log("这里执行了吗?")来检验。 2.日志级别设置为错误或警告 在Unity的编辑器里,可以在菜单栏选择”Edit”>”Project Settings”>”Console”打开控制台设置。设置里有三个可选项:Info、Warnings、Errors。如果设置为Warnings或Errors,则Debug.Log打印的输出内容将不会显示。需要将日志级别改为Info。 3.屏蔽了输出信息 在编辑器里的控制台面板上,右上角有一个下拉箭头。如果勾选了Filters的某一个或多个选项,则打印出来的内容可能被屏蔽了。需要将屏蔽选项去掉或重新设置过滤器。 4.开启了调试器 如果在Unity开启了调试器,可能会导致在代码运行时无法使用Debug.Log输出信息。此时可以尝试关闭调试器,然后重新运行代码。 5.使用了错误的日志命令 Unity还有类似Debug.LogWarning和Debug.LogError的命令,如果一不小心写成了这些命令,打印输出的信息将不同于Debug.Log,需要根据具体场景使用正确的日志命令。 以上是一些可能导致Unity Debug.Log无法打印输出的原因,可以根据具体情况逐一排查。另外,如果无论如何也无法打印输出,可以尝试在代码使用兼容其他编程语言的打印输出命令,例如Console.WriteLine等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值