最近忙的不行,所以没怎么更新,今天抽空给大家带来一篇短小精悍的内容。
很多时候大家在调试期间会有很多很多的日志输出,每次都需要点击Console窗口上的clear来清除日志信息着实麻烦,而且逼格很低,今天给大家带来一篇通过设定自定义快捷键来快速清除日志的方法。
进入正题
如下图所示,游戏运行或者调试的时候总是有很多的日志,每次都需要点击clear进行清除。
为了能够创建自定义快捷键来清除日志,需要先创建一个脚本,用来编写快捷键的代码来清除日志。
演示的效果图如下
如上图所示,最终效果为菜单窗口会出现自定义菜单,点击屏幕内的Button按钮后,会打出3行Log,我们在不点击Clear的情况下,点击自定义的菜单来清除Log,或者既不点击Clear也不点击菜单,直接通过设定的快捷键,清除日志。上图就是我们今天要分享的小功能的效果演示。
了解了以后,需要准备两个脚本,一个用来打出测试日志,一个用来编写自定义的清除代码。
如上图,创建两个脚本。接下来我直接贴出脚本内容
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class LogFile : MonoBehaviour
{
#region Public Attributes
public Button m_btn;
#endregion
#region Unity Messages
void Start()
{
m_btn.onClick.AddListener(() =>
{
Debug.Log("...............");
Debug.LogWarning("666666666666666");
Debug.LogError("Jimin Clear Console Test");
});
}
#endregion
}
上面的脚本内容是我们的LogFile,输出测试日志的脚本内容。
下面的脚本内容是我们编写自定义清除菜单的
using System;
using UnityEngine;
using System.Collections;
using UnityEditor;
using System.IO;
using System.Text;
public class JiminClearConsole : MonoBehaviour
{
#region Public Methods
[MenuItem("Jimin/HotKey/Clear Console &c")]
public static void JiminClearFunc()
{
Type entries = System.Type.GetType("UnityEditorInternal.LogEntries,UnityEditor.dll");
var clearFunc = entries.GetMethod("Clear", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public);
if (clearFunc != null)
{
//执行清除
clearFunc.Invoke(null, null);
//收尾处理
GUIUtility.keyboardControl = 0;
}
else
{
Debug.LogWarning("Can't find clearFunc");
}
}
#endregion
}
好了,以上就是两个脚本的全部内容。然后再随便创建一个Button,把我们的LogFile的脚本进行按钮关联就可以了。
接下来就可以运行项目进行测试了。
最终效果如下,分别演示了菜单栏清除,点击clear清除,以及最后的快捷键清除。
好了,今天的分享就到这里结束。
希望对大家有帮助,顺便提升下逼格\(^o^)/
下期分享见
本文分享自 韩东吉的Unity杂货铺 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!