MeowmentDebugTool/Packages/com.bywaystudios.meowmentdebugtool/CONSOLE_RUNTIME_READY.md
2025-12-22 15:29:55 +08:00

4.8 KiB
Raw Blame History

Console模块 - 运行时UI创建完成

已完成

Console模块的UI已经添加到RuntimeUIGenerator中会在运行时自动创建。

🎯 使用方法

1. 直接运行测试

using UnityEngine;
using MeowmentDebugTool;

public class TestDebugTool : MonoBehaviour
{
    void Start()
    {
        // 初始化调试工具会自动创建所有UI包括Console
        UniversalDebugTool.Init();
        
        // 测试各种日志
        Debug.Log("这是一条普通日志");
        Debug.LogWarning("这是一条警告日志");
        Debug.LogError("这是一条错误日志");
        
        // 测试异常
        try
        {
            throw new System.Exception("测试异常");
        }
        catch (System.Exception e)
        {
            Debug.LogException(e);
        }
    }
    
    void Update()
    {
        // 按空格键生成测试日志
        if (Input.GetKeyDown(KeyCode.Space))
        {
            Debug.Log($"测试日志 - 帧数: {Time.frameCount}");
        }
    }
}

2. 运行游戏

  1. 创建一个空GameObject
  2. 添加TestDebugTool脚本
  3. 运行游戏
  4. Console页面会自动出现在标签页中

3. 测试功能

  • 清空按钮: 清除所有日志
  • 锁定滚动: 自动滚动到最新日志
  • 过滤器: 显示/隐藏不同类型的日志
    • Info (白色)
    • Warning (黄色)
    • Error (红色)
    • Fatal (深红色)
  • 点击日志: 在下方显示详细信息和堆栈跟踪
  • 实时计数: Toggle显示每种日志的数量

📋 UI结构说明

RuntimeUIGenerator会创建以下结构

ConsolePage
├── ControlPanel (控制面板 - 高度80)
│   ├── ConsoleClearButton (清空按钮)
│   ├── ConsoleLockScrollToggle (锁定滚动)
│   ├── Spacer (弹性空白)
│   ├── ConsoleInfoFilterToggle (Info过滤)
│   ├── ConsoleWarningFilterToggle (Warning过滤)
│   ├── ConsoleErrorFilterToggle (Error过滤)
│   └── ConsoleFatalFilterToggle (Fatal过滤)
│
├── LogArea (60% 高度)
│   └── ConsoleLogScrollView
│       └── Viewport
│           └── ConsoleLogContent (垂直布局组)
│               └── [日志项动态生成]
│
└── DetailArea (40% 高度)
    └── ConsoleDetailScrollView
        └── Viewport
            └── Content
                └── ConsoleDetailText (详细信息)

🎨 样式配置

颜色方案

  • 背景: (12, 12, 12) - 深灰色
  • 日志区域: (5, 5, 5) - 更深的灰色
  • 详情区域: (8, 8, 8) - 中等深灰色
  • 日志项背景: (12, 12, 12)
  • 日志项选中: (25, 35, 45) - 蓝灰色

日志颜色ConsoleModule中定义

  • Info: (255, 255, 255) - 白色
  • Warning: (255, 255, 0) - 黄色
  • Error: (255, 0, 0) - 红色
  • Fatal: (178, 51, 51) - 深红色

字体大小

  • Toggle标签: 24
  • 日志项: 22
  • 详情文本: 24

🔧 自定义配置

如果需要修改样式可以在RuntimeUIGenerator.cs中找到CreateConsolePage方法进行调整

修改日志项高度

// 在CreateConsoleLogItemPrefab方法中
rect.sizeDelta = new Vector2(0, 30); // 改为你想要的高度

修改区域比例

// 在CreateConsolePage方法中
logAreaLayout.flexibleHeight = 3;    // 日志区域权重
detailAreaLayout.flexibleHeight = 2; // 详情区域权重

修改最大日志数

// 在ConsoleModule.cs构造函数中
private int maxLine = 500; // 改为你想要的数量

🚀 性能提示

  1. 默认500行限制: 超过的日志会自动删除
  2. 对象池优化: 日志项会被重用,不会频繁创建销毁
  3. 按需刷新: 只在日志变化或过滤器改变时刷新UI
  4. 适中的日志项高度: 30像素平衡了可读性和性能

📱 移动端建议

如果在移动设备上运行:

// 在CreateConsoleLogItemPrefab中调整
labelTmp.fontSize = 28; // 增大字体
rect.sizeDelta = new Vector2(0, 40); // 增加高度

🐛 调试技巧

查看Console模块是否初始化成功

if (UniversalDebugTool.InstanceExists)
{
    var console = UniversalDebugTool.Instance.GetType()
        .GetField("consoleModule", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)
        ?.GetValue(UniversalDebugTool.Instance);
    
    if (console != null)
    {
        Debug.Log("✅ Console模块已初始化");
    }
}

检查UI是否创建

在Hierarchy中查找

  • UniversalDebugTool_Canvas
    • MainWindow
      • ContentContainer
        • ConsolePage ← 应该能找到这个

完成!

现在你可以直接运行游戏测试Console模块了

所有的UI都会在调用 UniversalDebugTool.Init() 时自动创建。

享受调试吧! 🎉