跳转到内容

SusConsoleService

SusConsoleService

开发者控制台浮层 —— 拦截 Unity 日志,按颜色分级显示在所有 UI 之上,支持 Tab 补全和过滤的 命令输入。

SusCore · Devtools(免费)

SusConsoleService 是一个纯 C# 浮层服务,不是 .sharq 组件 —— 没有什么可以拖进模板里的东西。 挂载一次即可,它会在应用的整个生命周期内监听 Unity 的日志管道。

用法

csharp
#if DEVELOPMENT_BUILD || UNITY_EDITOR
var console = new SusConsoleService
{
    OverlayHost = SusBootstrap.GetOrCreateOverlay(uiDocument.rootVisualElement),
    ToggleKey = KeyCode.BackQuote, // ~
    MaxEntries = 500,
};
console.Attach(); // subscribes to Application.logMessageReceivedThreaded, spawns the hotkey driver
#endif

~(或调用 Toggle())从屏幕底部打开控制台。日志按严重级别着色(Log/Warning/Error 对应 灰/黄/红),默认自动滚动到最新条目,除非你手动向上滚动过;可以用 All / Log / Warn / Err 筛选按钮或搜索框来缩小范围。命令输入框在按 Enter 时执行已注册的命令,按 Tab 补全当前前缀; clearhelpfilter <all|log|warn|error> 是内置命令 —— 用 RegisterCommand 可以 注册更多。

成员作用
OverlayHost控制台挂载的浮层层级(Console 分类 —— 最顶层)
ToggleKey打开/关闭控制台的快捷键(默认 ~
MaxEntries已捕获日志行的环形缓冲区大小
IsOpen控制台当前是否显示
Attach() / Detach()启动/停止日志拦截和快捷键驱动
Show() / Hide() / Toggle()打开/关闭浮层
SetFilter(ConsoleFilter) / SetSearch(string)缩小可见日志行的范围
RegisterCommand(name, handler, help)向输入框添加一个命令
ExecuteCommand(input)以编程方式执行一个命令

备注

  • 免费 —— 随 sus-core 提供,无需购买 SusKit。
  • 把构造代码包在 #if DEVELOPMENT_BUILD || UNITY_EDITOR 里,避免它进入发布构建。
  • 完整的搭建流程和命令注册技巧:见包文档中的 Dev Console 指南