【推荐100个unity插件之35】unity在构建运行时显示调试异常消息(日志、警告、错误、异常),内置控制台执行自定义命令,配置GM调试作弊命令——In-game Debug Console

前言

In-game Debug Console插件可以帮助您查看构建运行时显示调试消息(日志、警告、错误、异常)(以及编辑器中的断言),并使用其内置控制台执行命令。

使用uGUI创建用户界面,并在启用Sprite Packing时花费1次SetPass调用(和6到10个批次)。在游戏过程中可以调整或隐藏控制台窗口。一旦控制台被隐藏,一个小的弹出窗口将取代它的位置(可以拖动)。弹出窗口将显示自出现以来到达的日志数。单击弹出窗口后,将重新出现控制台窗口。

控制台窗口使用自定义的回收列表视图进行了优化,该视图很少调用Instantiate函数。

可以在打包发布以后,程序运行时方便的看到控制台信息,在一些特定程序开发的调试过程中非常有帮助。例如在开发一些AR程序的时候,如果官方没有提供支持,则只能将程序发布到移动设备后才能调试,这个时候,能在移动设备看到控制台信息对于开发会方便很多。

下载

https://assetstore.unity.com/packages/tools/gui/in-game-debug-console-68068
在这里插入图片描述

构建运行时调试消息

将【Plugins/IngameDebugConsole】目录下的【IngameDebugConsole】预制件添加到场景中即可
在这里插入图片描述
运行以后,图标会提示调试信息的数量,如果有错误,则图标会变成红色。
在这里插入图片描述

点击图标以后,会在屏幕上方显示调试信息的详细内容。
在这里插入图片描述

配置参数

IngameDebugConsole下暴露了很多参数,可以给我们配置,主要我们关注这几个
在这里插入图片描述
其他参数翻译
在这里插入图片描述
在这里插入图片描述

命令控制台

命令基本上是一个可以通过命令输入字段从控制台调用的函数。这个函数可以是静态的,也可以是一个实例函数(非静态的),在这种情况下,需要一个活的实例来调用这个函数。函数的返回类型可以是任何类型(包括void)。如果函数返回一个对象,它将被打印到控制台。该函数还可以接受任意数量的参数;唯一的限制适用于这些参数的类型。支持的参数类型有:

Primitive types, enums, string, Vector2, Vector3, Vector4, Color, Color32, Vector2Int, Vector3Int, Quaternion, Rect, RectInt, RectOffset, Bounds, BoundsInt, GameObject, any Component type, arrays/Lists of these supported types

注意GameObject和Component参数需要使用GameObject.Find赋值

注册自定义命令

只需简单地将IngameLogsConsole.ConsoleMethod属性添加到您的函数。这些函数必须是公共静态的,并且必须驻留在公共类中。

这里我只举了不需要挂载脚本最简单的实现方式,当然还有其他方式可以实现,具体可以参考官方文档:https://github.com/yasirkula/UnityIngameDebugConsole?tab=readme-ov-file

public class TestScript
{
    
    
    [ConsoleMethod( "Log", "打印一条日志" )]
	public static void Log()
	{
    
    
		Debug.Log("Log命令执行成功");
	}

	[ConsoleMethod( "cube", "在位置创建一个cube" )]
	public static void CreateCubeAt( Vector3 position )
	{
    
    
		GameObject.CreatePrimitive( PrimitiveType.Cube ).transform.position = position;
	}

    [ConsoleMethod( "Log", "打印一条日志" )]
	public static void Log( Vector3 position, int count )
	{
    
    
		Debug.Log($"位置:{
      
      position},数量:{
      
      count}");
	}
}

执行无参数命令

log

在这里插入图片描述
执行带参数命令,可以使用" ' [] ()包裹参数,当然如果你想也可以交替使用,只是不太美观而已

# 注意带参数名命令之间是有空格的
log [1 2 3] [10]
或
log (1 2 3) (10)
或者
log "1 2 3" "10"
或者
log '1 2 3' '10'

语法也有一定的灵活性:

  • 您可以提供一个[]来表示Vector_.zero:
  • 您可以输入1代替true,或输入0代替false
  • 您可以为空游戏GameObject对象 或者 Component组件参数输入null

在这里插入图片描述

效果
在这里插入图片描述

查看所有可用的命令

您可以使用控制台底部的输入字段输入命令。要查看所有可用的命令,只需键入“help“。
在这里插入图片描述
效果
在这里插入图片描述

完结

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

好了,我是向宇https://xiangyu.blog.csdn.net

一位在小公司默默奋斗的开发者,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!如果你遇到任何问题,也欢迎你评论私信或者加群找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36303853/article/details/143357290