3.5 KiB
3.5 KiB
MeowmentDebugTool 模块化重构说明
重构概述
已将 UniversalDebugTool 的4个主要功能模块分离成独立的脚本文件,使代码结构更清晰、更易维护。
新增文件
1. IDebugModule.cs
- 作用: 调试模块的基础接口
- 方法:
Initialize(): 初始化模块GetPage(): 获取模块的UI页面GameObjectGetModuleName(): 获取模块名称
2. ParametersModule.cs
- 作用: 参数查看模块,显示设备和系统信息
- 主要功能:
- 显示设备信息(设备名称、型号、处理器等)
- 显示系统信息(Unity版本、平台、分辨率、图形设备等)
- 复制信息到剪贴板
- 刷新信息
3. CustomButtonsModule.cs
- 作用: 自定义按钮模块,通过反射加载标记为DebugButton的方法
- 主要功能:
- 自动扫描并加载所有带
[DebugButton]特性的静态方法 - 动态创建按钮UI
- 设置SDF字体
- 支持自定义按钮回调
- 点击按钮后自动关闭调试窗口
- 自动扫描并加载所有带
4. ToolbarModule.cs
- 作用: 工具栏模块,提供时间调整等工具
- 主要功能:
- 时间调整滑块(支持秒和分钟显示)
- 增加/减少时间按钮
- 可扩展的游戏时间调整接口
5. SettingsModule.cs
- 作用: 设置模块,提供分辨率设置等功能
- 主要功能:
- 自定义窗口分辨率
- 重置为默认分辨率
- 实时显示当前窗口尺寸
UniversalDebugTool.cs 的改动
主要变化
-
移除了具体实现代码:
- 参数查看功能 → ParametersModule
- 自定义按钮功能 → CustomButtonsModule
- 工具栏功能 → ToolbarModule
- 分辨率设置功能 → SettingsModule
-
新增模块管理:
private ParametersModule parametersModule; private CustomButtonsModule customButtonsModule; private ToolbarModule toolbarModule; private SettingsModule settingsModule; private List<IDebugModule> allModules = new List<IDebugModule>(); -
初始化流程:
InitializeDebugTool(): 创建所有模块实例并注册页面InitializeAllModules(): 调用各模块的Initialize方法
-
保留的公共API:
CopyDeviceInfoToClipboard()- 委托给 ParametersModuleCopySystemInfoToClipboard()- 委托给 ParametersModuleRefreshAllInfo()- 委托给 ParametersModuleSetCustomButtonCallback()- 委托给 CustomButtonsModuleReloadCustomButtons()- 委托给 CustomButtonsModule
优势
- 职责分离: 每个模块只负责一个功能领域
- 易于维护: 修改某个功能时只需要编辑对应的模块文件
- 可扩展性: 添加新模块只需实现 IDebugModule 接口
- 代码清晰: UniversalDebugTool.cs 现在主要负责协调各模块,代码更简洁
使用方式
使用方式完全不变,所有现有的API和功能保持兼容:
// 初始化调试工具
UniversalDebugTool.Init();
// 设置字体
UniversalDebugTool.SetSDFFont(myFont);
// 刷新信息
UniversalDebugTool.Instance.RefreshAllInfo();
// 自定义按钮仍然使用相同的特性
[DebugButton("测试按钮")]
public static void TestMethod()
{
Debug.Log("测试");
}
未来扩展
如果需要添加新的调试功能模块,只需:
- 创建新的类并实现
IDebugModule接口 - 在
UniversalDebugTool.InitializeDebugTool()中实例化并添加到allModules列表 - 调用
InitializeAllModules()会自动初始化新模块