在为项目开发用户界面时,你可以试着深入了解输入事件的处理方式,或者了解不同用户和控件的状态并查看它们在特定时刻的属性,这些都能让你受益匪浅。引擎提供了各种工具来帮助你实现这一点,能让你调试潜在的问题,直观了解界面的布局,从而为你的工作奠定了良好开端。
Slate调试器
假如控件在点击后未能正常工作,而你想诊断原因,那么你可以试着查看控件事件的走向来帮助你解决问题。为此,你可以在控制台输入“SlateDebugger.Start”来启用Slate调试器。完成后,你将能看到描述所有输入事件的日志消息,包括鼠标点击、按键、导航事件和焦点变化。借助这些信息,你可以了解其他控件是否正在使用该事件,或者追踪负责处理事件的函数是否正在对当前关注的控件进行更改。
关注目标的视觉效果
大多数控件没有任何视觉指示来指明它们是关注目标,在设置键盘或游戏手柄导航时,这会为你带来麻烦。为了解决这一问题,你可以在项目设置中将“渲染焦点规则(Render Focus Rule)”设置为“始终(Always)”。完成此操作后,你始终可以看到当前关注的控件周围会时刻显示一条虚线,并且在发生不同导航事件时,可以看清关注对象转移到了哪个控件上。
控件反射器(Widget Reflector)
由于编辑器本身是用Slate构建的,因此你可以在编辑器中寻找符合你的需求的现有控件,查看其代码并了解其实现方式,这会很有帮助。为此,你可以在“窗口(Window)->开发人员工具(Developer Tools)”中打开控件反射器。打开工具后,你可以点击“选择绘制控件(Pick Painted Widget)”并将鼠标移到游戏或编辑器中任何位置的控件上,以查看该控件的整个控件层级。
你还可以看到控件在哪个源文件中创建,而且如果是UMG控件,你还可以检查其属性。当你在处理独立窗口游戏时,控件反射器可以捕捉快照以供离线检查