先前过写一篇URP后处理真机调试的文章,里面使用UGUI写了一个简易的调试工具,当时并没有想过扩展,以及移植性,正好前段时间有空,用GUI写了一个调试工具,纯代码方便移植与复用,并封装了一个Demo如下:
工具总共由四个可拖拽的主要窗口组成,其中DebugWindow是总控窗口,其他窗口都可以通过它进行打开/关闭
DebugWindow窗口打开代码如下:
DebugExInit.Execute(); DebugEx.OpenWindow();
ButtonWindows可以扩展添加测试逻辑按钮,添加的方式是在DebugExInit.cs的OnInit()函数中添加
DebugEx.AddButton("Print Hello World", () => { DebugEx.Log("Hello World!"); }); DebugEx.AddButton("Print Hello World2", () => { DebugEx.Log("Hello World2!"); }); DebugEx.AddButton("Grab1", () => { var mGrab = VolumeManager.instance.stack.GetComponent<Grab>(); DebugEx.ShowTexture("Grab1", mGrab.RT); }); DebugEx.AddButton("Grab2", () => { var mGrab = VolumeManager.instance.stack.GetComponent<Grab>(); DebugEx.ShowTexture("Grab2", mGrab.RT); });
LogWindow,是日志显示窗口,使用DebugEx.Log或DebugEx.LogFormat函数可以将日志输出到屏幕
RTWinows,可以用来输入图片(参数类型Texture),所以在处理一些渲染相关的工作时,如果想看中途处理的的RT是否正确,可以使用DebugEx.ShowTexture函数,将图片输出到RTWinows中,(图片下方是传入的图片名称)
点击每个小图,可以看到完整的图片,再次点击可以关闭,(如下图)
(上图显示的是Demo里使用UPR进行的一张屏幕截图RT)
其它说明
1.Demo工程中给出了两个示例,如果不想一直显示总控窗口,也可以参考Demo2中的方法,显示一个可以拖拽的小按钮,默认显示当前帧率,点击可以控制DebugWindow的显示/隐藏(如下图)
2.本工具所有的UI(包括字体)都可以根据屏幕的大小自动适配尺寸,所以不用担心设备分辨率
3.本工具是由纯GUI代码所写,不存在资源,只要把工程中DebugEx文件夹拷到自己项目就可以使用
Demo地址: https://github.com/bzetu/DebugEx
文章评论