这个项目能做什么
Gua 是一个受 Playwright 启发的游戏运行时自动化协议。它将运行中游戏的 UI 暴露为语义化 UI 树(Semantic UI Tree),使自动化测试、检查器和 AI 代理能够通过 ID、角色、文本和状态来定位控件,而非依赖脆弱的图像识别或屏幕坐标。它通过基于 GDExtension 的 GDScript 插件支持 Godot 4.7,并通过一个包支持 Unity 6,该包会自动反射 UI Toolkit、uGUI 和 TextMeshPro 控件,支持 Windows x64、Linux x64 以及 Intel/Apple Silicon macOS Mono 构建。
除了 UI 自动化之外,Gua 还提供用于语义化游戏世界信息的世界对象树(World Object Tree)、语义化游戏操作(Semantic Game Actions)或可选的原始输入(Raw Input)用于游戏操作、通过 GuaClock 实现确定性虚拟时间、录制、视觉对比以及暴露策略——该策略限制 AI 代理可见的内容以及可使用的 UI 操作。原生游戏可通过 gui-mcp 连接,而 Godot Web 导出或 Unity WebGL 构建可使用实验性的 gua-webmcp 浏览器原生适配器。
Gua 以多个 NuGet 包形式分发:Gua.Core 提供 C# 绑定,Gua.Testing 提供 .NET 测试中的定位器、等待和断言,Gua.Testing.Godot 和 Gua.Testing.Unity 提供引擎特定的测试宿主,Gua.Runtime 面向适配器作者,Gua.Testing.Visual 提供 PNG 基线对比,Gua.Testing.Snapshots 提供确定性 UI 和世界 JSON 基线,Gua.Testing.Recording 提供可回放的用户旅程。Gua Inspector 提供浏览器和 Windows 桌面 UI,用于检查语义树、节点状态、截图和日志。link1345/gua-tester 仓库提供了可复用的 GitHub Actions 工作流,用于在 CI 中运行 Godot 和 Unity 测试。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。