背景
总是点击那个Console窗口的Clear 来清log,如果高频率的点击也是挺烦的,何不找个快捷方式,让清理无形之中顺手拈来。
演示
演示中是点击了菜单清空的,实际使用中可以使用快捷键的
并且直接脚本中调用这个方法也是可以的。
用处还是很多的,需要自己实战体会。
代码
Unity 2017 以前的版本:
using UnityEngine;
using UnityEditor;
public static class ShortCuts {
[MenuItem("Tools/Clear Console %&c")] // Ctrl + ALT + C 避免与唤出控制台的快捷方式冲突
public static void ClearConsole () {
var logEntries = System.Type.GetType("UnityEditorInternal.LogEntries,UnityEditor.dll");
var clearMethod = logEntries.GetMethod("Clear", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public);
clearMethod.Invoke(null, null);
}
}
Unity 2017 版本(稍微有点变化):
using UnityEngine;
using UnityEditor;
public static class ShortCuts {
[MenuItem("Tools/Clear Console %&c")] // Ctrl + ALT + C 避免与唤出控制台的快捷方式冲突
public static void ClearConsole () {
Assembly assembly = Assembly.GetAssembly(typeof(SceneView));
Type logEntries = assembly.GetType("UnityEditor.LogEntries");
MethodInfo clearConsoleMethod = logEntries.GetMethod("Clear");
clearConsoleMethod.Invoke(new object(), null);
}
}
步骤
- 新建脚本 ShortCuts.cs,名字可以不一样;
- 复制下面的代码,粘贴到刚创建的脚本里;
- 按下 Ctrl + Alt+ C 清空控制台(不管是否播放状态均有效)。
- 也可以把方法直接写到你的脚本中,直接在debug前调用一下。
Tips:如果引用了UnityEditor,请将该脚本拖入到Editor文件夹内,或者将
using UnityEditor
使用预编译指令 包裹起来,示例如下:
#if UNITY_EDITOR
using UnityEditor;
#endif
参考
【Unity闲谈】用快捷键清空Unity的控制台 - CSDN博客 -http://blog.csdn.net/u011771335/article/details/51224397
Clear Console Window - Unity Answers- https://answers.unity.com/questions/707636/clear-console-window.html
关键字:Unity 3D,脚本清空控制台,清空Console,Assembly.GetAssembly(typeof(SceneView)),Unity 2017,Unity 2017 可用