Unity里清除Console控制台Log的函数

2023-11-19

Log输出部分转发来自:http://blog.sina.com.cn/s/blog_13c4bf4b40102wz0r.html

在控制台输出中,是开发者常用到的一种函数,通过Debug类来实现

  • 打印字符串,
    Debug.Log(“log”);

  • 如果有需要警告的信息,
    Debug.LogWarning(“waring”);

  • 如果有错误,
    Debug.LogError(“error”);

假如,希望发生错误的时候,游戏立刻暂停,
Debug.Break();
但是该函数只适合放在try-catch或if-else里面,因为它不会主动捕获异常,只会在我们命令的地方执行,暂停游戏,调试完毕之后,可以手动点击继续,然后又会继续执行下去,直到下一个同样错误出现为止。
使用如下:


if(Input.GetKeyDown(KeyCode.E))
{
      Debug.LogError("erroe");
      Debug.Break();
}
或
try
{
        /*
         执行正常操作
         */
}
//出现空引用,打印ErrorLog,并且暂停游戏
catch(NullReferenceException)
{
       Debug.LogError("NullReferenceException");
       Debug.Break();
}

在运行期间,开发者肯定需要观察很多参数,会使用很多Log,但是出现很多之后,查看时候十分的不方便,所以想使用一个函数来清除之前已经无用的函数。

假如,想要让console的内容清空,在Debug里有一个Debug.ClearDeveloperConsole函数,原以为这个就是官方给的方便开发者调用的函数,
官方API上的描述为:Clears errors from the developer console.
中译出来就是:清除开发人员控制台中的错误。然鹅并没什么卵用。并不会清楚Console上的输出,不知道是怎么用的,由于博主只在百度上搜索,所以对于这个函数的理解有局限性,大家有理解的希望评论区留言。

下面是网络上大家都描述的方法:

private void toClearConsole()
{
	//获取UnityEditor程序集里面的UnityEditorInternal.LogEntries类型,也就是把关于Console的类提出来
	var logEntries = System.Type.GetType("UnityEditorInternal.LogEntries,UnityEditor.dll"); 
	//在logEntries类里面找到名为Clear的方法,且其属性必须是public static的,等同于得到了Console控制台左上角的clear,然后通过Invoke进行点击实现
	var clearMethod = logEntries.GetMethod("Clear", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public);  
	clearMethod.Invoke(null, null);  
}
备注(一):

使用System.Type.GetType()得到Type引用
为了以更灵活的方式得到类型信息,我们可以调用System.Type类的静态成员GetType(),然后指定类型的完全限定名。采用这种方法,我们不需要得到正从中提取元数据的类型的编译时信息,

1)Type.GetType()方法被重载一:
允许我们指定两个布尔类型的参数,一个用来控制当类型找不到时是否抛出异常,另一个用来指示是否区分字符串大小写。
例如:
// 使用静态的Type.GetType()方法获取类型信息(如果SportsCar没有找到,则忽略不抛出异常信息)
Type t = Type.GetType(“CarLibrary.SportsCar”,false,true);

2)Type.GetType()方法被重载二:
在上面的例子中,注意传入GetType()的字符串没有包含类型所在的程序集信息。在这种情况下,该类型便被认为是定义在当前执行的程序集中。但是,当希望得到一个外部私有程序集的类型元数据时,字符串参数必须使用类型完全限定名,加上类型所在的程序集的名字(每一个都用逗号隔开):

// 得到外部程序集中类型的类型信息
Type t= Type.GetType(“CarLibrary.SportsCar,CarLibrary”);

备注(二)

C#中类型Type有个GetMethod方法,调用该方法可获取指定方法名的方法信息实例。
使用时,其参数一般为2个,一个是方法名称字符串(可设置条件忽略大小写),另外一个参数为搜索方法的条件枚举。
该方法返回的是MethodInfo类型的实例,获取到了这个实例之后,我们就可以调用并执行该方法了。
MethodInfo method = type.GetMethod( funcName , BindingFlags.IgnoreCase | BindingFlags.Static | BindingFlags.Public );

这里要注意,搜索条件枚举,即第2个参数,要包含BindingFlags.Public,否则会返回NULL的。
如果是静态的方法,还要设置一个条件BindingFlags.Static。

得到了MethodInfo实例后,反射执行该方法:
method.Invoke( obj, arrParam );
obj为调用方法所属的类型实例,如果调用的为静态方法,可设置为null;arrParam为方法参数数组。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity里清除Console控制台Log的函数 的相关文章

  • Unity3D之MonoBehaviour

    Unity3D中的MonoBehaviour是一种基于组件的编程架构 用于开发游戏和应用程序 它是Unity引擎中用于创建行为的基类之一 并且可以让你通过重写其方法来定义对象在游戏运行时的行为 首先 在Unity中创建一个游戏对象并向其添加
  • Unity集成Leap Motion

    转载自 http www cocoachina com game 20150716 12625 html 演示视频文章最后 如果你已经熟悉编程的概念 理解并在C 语言方面有一定的经验 并且对面向对象编程思想和设计概念有所熟悉 如果你了解3D
  • 关于Albedo贴图、颜色贴图、Metallic 贴图、Specular贴图、法线贴图、视差贴图、凹凸贴图、Height Map高度贴图、AO 贴图Occlusion 贴图、Emission 贴图等

    在学习unity的过程中 被各种贴图弄得晕头转向 为了弄清楚各种贴图 查询了很多资料 粗略的整理如下 只要耐心看完 对贴图的基本用法基本上就没问题了 1 Albedo 贴图 可以看做是Diffuse颜色贴图 Albedo 反照率 贴图 用于
  • 树实现客户端红点系统

    树实现客户端红点系统 红点系统总览 demo 设计 代码设 引用 https zhuanlan zhihu com p 85978429 红点系统总览 如上图所示 规划红点系统的时候 我们将整个系统分为独立的三个部分 结构层 驱动层和表现层
  • Unity中的单元测试

    我知道的单元测试有两种方法 1 从Unity的AssetStore窗口下载UnityTestTools 已下架了 2 使用TestRuner 2018 2 5以上版本有 我用的是2018 2 7 TestRuner的用法 操作窗口 Wind
  • Unity3D射线检测

    射线检测主要用于像子弹是否打中物体 捡取物品等情况 本来面向百度想找例子看看 不过没找到合适的 还是自己总结尝试吧 以下测试Unity3D版本 2017 4 2f2 射线的检测步骤如下 1 Ray 这个类为了产生一个射线 如果我们想要场景中
  • 服务器时间管理器

    时间戳管理器 using System using UnityEngine public class SyncTime Singleton
  • Unity笔记-打飞碟游戏

    目的 创建一个打飞碟游戏 简陋 游戏要求 游戏要分多个 round 飞碟数量每个 round 都是 n 个 但色彩 大小 发射位置 速度 角度 每次发射数量可以变化 游戏过程中 仅能创建 n 个飞碟 且不容许初始化阶段生成任何飞碟 飞碟线路
  • Unity+Pico 手柄按键控制

    一 定义手柄按键API 1 InputDevices GetDeviceAtXRNode 通过XRNode获取对应的设备 2 XRNode是一个枚举类型 包含LeftEye RightEye CenterEye Head LeftHand
  • Unity编辑器界面概述

    了解界面 如果您对编辑器界面没有非常地了解 那么请花一些时间查看并熟悉 Editor 编辑器 界面 Editor 主窗口由选项卡式窗口组成 这些窗口可重新排列 因此 Editor 的外观可能因项目或者开发者而异 具体取决于个人偏好 Wind
  • Unity3D【脚本】 按键盘Esc弹出退出面板 确定退出游戏 取消关闭面板

    按键盘Esc弹出退出面板 确定退出游戏 取消关闭面板 效果图 脚本 using UnityEngine using System Collections public class Exit MonoBehaviour public Game
  • Unity 音频卡顿 静帧 等待等问题的解决方案

    是否遇到过在Unity中加载音频文件卡顿 也就是画面卡住 的现象 特别是加载外部音频文件时 虽然时间很短 但这终归不是什么好现象 尤其是打游戏的话 影响很大 但是一些有牌面的Boss也不能不配音乐 当然也可以通过其它方式解决 比如特定条件统
  • unity3d 输入法相关API

    Input inputString 获取输入的文字 正在打的中文是接受不到的 只有在文字写到文本框才能获取 Input imeCompositionMode 是否是激活输入框状态 on 是 Input compositionString 空
  • Unity3D 官方文档 平台特殊化之Standalone和多显示器的处理

    版本 unity 5 6 语言 C 总起 Standalone 我一眼看下去的理解就是PC机平台 官方文档中说该平台指的是Mac Windows和Linux 这篇文章主要讲的是Standalone平台下的设置 通过点击菜单栏的File gt
  • Unity3D:按键生成物件,Instantia…

    在按下按键之后 可以在画面中生成之前定义好了的物体 这里使用了Instantiate函数来生成 1 先在游戏中定一个空物件GameObject 创建空物件快捷键 ctrl shift n 2 在视图中放置 3 编写脚本 脚本 SpaceCh
  • Unity3d 插件 系列——DoTweenPro介绍(图文详细+案例)

    Unity3d 插件 系列 DoTweenPro介绍 图文详细 案例 前言 一 DoTweenPro简介 二 DoTweenPro安装 三 DoTweenPro主要组件 1 DoTweenAnimation 2 DoTweenPath 3
  • Unity中UI框架的使用1-添加面板、显示Loading页面

    其中BasePanel和Canvas都是挂在面板的预制物上的 1 导入我们的UI框架 本篇文章中有用的是两个UIPanelType NUIManager和NBasePanel 会放在文章最后供大家使用 2 先将我们做好的Panel设置成预制
  • Unity3d获得android和ios设备的唯一标识

    android为mac地址 ios为advertisingIdentifier 函数都比较简单 网上也搜得到 我也就不多说了 主要是对于我们没做过安卓和IOS开发的人来说 整合进工程有各种的问题 我也就直接上网盘了点击打开链接 代码包里看得
  • Unity打包WebGL的优化常用操作?

    1 贴图部分优化 如果贴图格式时2048 在不影响画面效果的情况下 改成1024或者5 12 还可以缩小包体 2 压缩和解压缩问题 WebGL打包的时候分三种压缩情况 gzip 比Brotli文件打 但打包快 http和https都支持 B
  • unity dots jobSystem 记录

    Looking for a way to get started writing safe multithreaded code Learn the principles behind our Job System and how it w

随机推荐

  • 记录--Vue中如何导出excel表格

    这里给大家分享我在网上总结出来的一些知识 希望对大家有所帮助 一 导出静态数据 1 安装 vue json excel npm i vue json excel 注意 此插件对node有版本要求 安装失败检查一下报错是否由于node版本造成
  • hive、impala、prestoDB 优缺点对比

    hive 优点 缺点 被广泛应用 经受时间的考验 既然是基于Mapreduce 也拥有MapReduce所有缺点 包含昂贵的Shuffle操作和磁盘IO操作 运行在Mapreduce框架之上 hive仍然不支持多个reduce操作group
  • JavaScript系列——数组元素左右移动N位算法实现

    引言 在自己刚刚毕业不久的时候 去了一家公司面试 面试官现场考了我这道题 我记忆深刻 当时没有想到思路 毫无疑问被面试官当成菜鸟了 最近刚好在研究数组的各种算法实现 就想到这道题 可以拿来实现一下 纪念自己逝去的青春 需求 假设有这样一个数
  • stm32(十)滴答定时器

    1 系统滴答定时器的概述 滴答定时器又称 SysTick 有两个时钟源 一个为内部时钟 一个为外部时钟 滴答定时器是一个 24 位倒计 数的定时器 从预装载值一直到 0 重装载寄存器的值会自动装载到计数寄存器中 只要不把它使能位清除 那 么
  • 用过多款团队协作工具后,少数派为什么选择飞书

    飞书 字节跳动旗下SaaS应用 自诞生以来 受到了国内众多企业的青睐和关注 飞书也一直致力于为企业提供高效协作的解决方案 如今 飞书的解决方案已覆盖互联网 教育 媒体 法律 零售等行业 未来还将进一步扩展到更多行业 少数派 是媒体行业中最早
  • Java程序员必备的几款开发工具

    工欲善其事 必先利其器 作为一名优秀的Java程序员 怎能没有几款得心应手的高效开发工具呢 市面上类库 工具千千万 下面就给大家推荐几款高效的Java开发工具 1 UItraEdit UltraEdit是初学者们非常喜爱的一款开发工具 可以
  • 史上最全的MathCAD安装教程

    今天我们来安装一下MathCAD 今天我们安装的版本是PTC MathCAD Prime 5 0 Step 01 首先我们先来下载一下软件 提取码 nifp Step 02 软件下载好了之后如下图 Step 03 解压此文件 Step 04
  • vue的v-for循环普通数组、对象数组、对象、数字

    div span u 索引 i span br span u a 索引 i span div
  • JavaScript经典案例之按下拖拽、跟随鼠标移动

    div div
  • VMware虚拟机走主机代理上网

    1 打开虚拟机系统的网络设置 2 设置代理为手动 并填写代理ip和端口 这里我的代理软件用的是Socket协议 故只填 Socket 主机一栏 3 代理 ip 和端口填写 ip地址 ip地址可以在主机系统的命令行窗口输入ipconfig查询
  • js向服务器发送信息,Angularjs向服务器发送请求

    您需要将id属性分配给对象 item id 4 让我们假设您有一个文本框 并且用户想要通过在其中插入名称来保存新项目 然后单击提交 让我们假设您正在使用MongoDB项目集合 为简单起见 它们只有id字段 这是你应该做些什么来让它变得容易
  • java如何检测连接池连接情况,如何监控数据库连接池(JDBC Connection Pool)

    本文中 我将介绍利用Dynatrace AppMon监控JDBC Connection Pool的一些技巧 以便快速诊断JDBC Connection Pool是否存在泄露和监控JDBC Connection Pool的使用率 通过监控获取
  • 攻防世界 Web simple_php

    攻防世界 Web simple php 1 分析源代码 2 得到flag 1 分析源代码 a 和 b 都是通过GOT传入 第一个if可以获取flag1 但是要求a0 atrue 但是如果
  • x-studio教程之 - Unity Lua调试 ulua/tolua slua调试教程

    UnityLua DebugTutorial 请查看最新官方文档 https docs x studio net zh CN latest lua dbg 01 unity3d
  • Grafana安装和实现可视化和告警

    1 Grafana安装和实现可视化和告警 Prometheus UI 提供了快速验证 PromQL 以及临时可视化支持的能力 但其可视化能力却比较弱 一般情况下 我们都用 Grafana 来实现对 Prometheus 的可视化实现 1 1
  • 软件测试工程师自我介绍范文_软件测试面试指导之自我介绍

    面试自我介绍虽然人人都准备 但是做到让人印象深刻可不容易啊 本篇就具体来聊聊人人都要经历的面试 怎么做自我介绍 才能让面试官眼前一亮 面试是什么 它是个机会 让面试官更进一步确认你是他们需要的人 你进一步展现你的交际沟通能力 在面试中 自我
  • 7G空间安装Linux,双系统使用Linux引导

    今天在装linux的window双系统时 出现在无法使用linux引导的问题 开机总是自动进windows 照理来说我先装的window 后装的linux 应该是开机进grub引导才对 在主板的boot里根本没有linux项 后来用Easy
  • DAMA-DMBOK2重点知识整理CDGA/CDGP——第2章 数据处理伦理

    目录 一 分值分布 二 重点知识梳理 1 语境关系图 2 引言 3 业务驱动因素 4 基本概念 一 分值分布 CDGA 2分 2单选 CDGP 0分 不考 二 重点知识梳理 1 引言 预警关系图 数据处理伦理定义 如何以符合道德准则及社会责
  • module load/unload 命令 (Envrionment modules工具)

    Envrionment modules工具用来快速的设置和修改用户编译运行环境 Envrionment modules通过加载和卸载modulefile文件可直接改变用户的环境变量 用户不需要修改 bashrc 从而避免误操作 使用modu
  • Unity里清除Console控制台Log的函数

    Log输出部分转发来自 http blog sina com cn s blog 13c4bf4b40102wz0r html 在控制台输出中 是开发者常用到的一种函数 通过Debug类来实现 打印字符串 Debug Log log 如果有