mcpField
H
Hera Agent Unity

Hera Agent Unity

本地服务
github.com开发工具305 天前更新

关于 Hera Agent Unity

Hera Agent Unity 通过本地 CLI 和 Unity Connector,让编码 Agent 检查、操作并验证正在运行的 Unity Editor。它覆盖从场景与资产编辑到运行测试、查看渲染结果的反馈循环,并以精简状态信息控制上下文用量。

主要功能

  1. 01检查编辑器状态、场景和控制台
  2. 02编辑游戏对象、组件与资产
  3. 03运行 C#、编辑器及播放模式测试
  4. 04捕获视图并验证 UI 输入
  5. 05通过 CLI 连接运行中的 Unity

适用场景

  1. 01检查 Unity 编译错误并修复
  2. 02搭建场景、组件和 UI
  3. 03运行测试并查看实际渲染结果
  4. 04让 Agent 验证游戏内输入

MCP 相关

README 将 Hera 描述为 CLI 与 Unity Connector 之间的桥接工具,未说明其提供 MCP 服务或连接 MCP 服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"notnull92-hera-agent-unity": {
"command": "npx",
"args": [
"-y",
"hera-agent-unity"
],
"env": {
"HERA_MCP_ENABLED": "<HERA_MCP_ENABLED>"
}
}
}
}
启动命令npx -y hera-agent-unity
需要配置的环境变量
HERA_MCP_ENABLED

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmhera-agent-unity0.2.17

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

hera-agent-unity 标志

Release GitHub stars License Go Unity Platform

hera-agent-unity

让 AI 编码 Agent 在 Unity 中拥有双手、双眼和检查清单。

Codex、Claude、Cursor、Copilot、AntiGravity 以及其他支持 shell 的 Agent,可以检查实时运行的 Unity Editor、对其进行更改、运行和测试、查看结果,并持续修复,直到证据表明任务已完成。


3 步开始使用 · 它能做什么? · 为什么选择 Hera? · 效果如何? · 示例 · 命令

English · 한국어


一分钟了解 Hera

即使没有 Hera,AI 也能编写 Unity C#,但代码写完后,它无法可靠地了解你的实时 Editor是什么状态。

通常的工作循环如下:

You ask the AI
   ↓
AI writes code
   ↓
You open Unity and wait for compile
   ↓
You copy the error back to the AI
   ↓
AI fixes it
   ↓
You press Play and explain what happened
   ↓
repeat...

Hera 补上了这个循环:

You ask the AI
   ↓
AI uses Hera
   ↓
Unity compiles, runs, tests, clicks UI, captures the result
   ↓
Hera gives the real result back to the AI
   ↓
AI fixes what failed and checks again
   ↓
verified result

可以这样简单理解:

AI 是大脑。Hera 为这个大脑提供操作 Unity 的双手、检查结果的双眼,以及一份检查清单,确保项目仍有问题时它不会停下。

Hera 不会取代 Unity,也不会取代编码 Agent。它将两者连接起来,让 Agent 能根据你实际项目中的事实开展工作,而不是仅凭源代码猜测。


它解决什么问题?

Unity 开发的反馈循环发生在源文件之外。

一项更改在代码中看起来正确,仍可能因为以下原因而失败:

  • Unity 未能编译;
  • 打开了错误的 Scene;
  • 缺少 GameObject 或 Component;
  • Inspector 中的序列化值不同;
  • Unity API 在你的 Editor 版本中发生了变化;
  • Console 中有异常;
  • Play Mode 的表现与 Edit Mode 不同;
  • 按钮在视觉上存在,却无法接收输入;
  • UI 布局从技术上看有效,外观却不正确;
  • AI 在实际检查这些问题之前就声称“已完成”。

Hera 让 Agent 能够直接询问真实的 Editor。

hera-agent-unity status
hera-agent-unity console --type error
hera-agent-unity scene info
hera-agent-unity editor play --wait
hera-agent-unity test --mode PlayMode

如果所选的 Editor 尚未运行,Hera 可以在发现 Connector 之前启动对应的项目:

hera-agent-unity --project C:/Projects/Game editor launch
hera-agent-unity --project C:/Projects/Game editor restart

项目版本来自 ProjectSettings/ProjectVersion.txt;匹配的 Unity Hub 安装来自 UNITY_HUB_EDITOR 或平台默认路径(Windows 上为 %ProgramFiles%\Unity\Hub\Editor)。自定义 Hub 位置可通过 --hub-root 指定。启动时采用 Package Manager 的常规行为,而非 -noUpm,并会在新进程发布该项目对应的心跳信号后返回。在 Windows 上,如果 Agent shell 未设置标准的通用配置文件环境,Hera 也会为 Unity 子进程恢复该环境,确保 UPM 路径解析仍以与常规桌面启动相同的基准开始。

重要的不是命令名称,而是 Agent 能够观察 → 更改 → 运行 → 验证 → 修复,无需你在 AI 和 Unity 之间传递信息。


它究竟能做什么?

你可以用 Hera 执行一行的小型检查,也可以用它完成由 AI 辅助的完整 Unity 工作流。

你希望 AI 做什么Hera 能提供什么
检查 Unity 是否运行正常实时 Editor 状态、版本、项目、编译状态、Console 错误
启动或重启正确的 Editor根据项目记录的 Unity 版本启动或重启对应项目,并等待该项目的心跳
了解当前 SceneScene 信息、GameObject 搜索、Component 和 Inspector 读取
修改 Scene创建/保存 Scene;创建、复制、重命名、设置父级、变换、标签、层级或删除 GameObject
编辑 Component添加、移除、检查和更改序列化的 Component 值
处理项目资源在 Assets/ 下查找、创建、复制、移动或删除资源
运行项目专属 C#在已加载的 Editor 中执行 C#,并访问 Unity API 和项目程序集
制作动画创建 AnimationClip、AnimatorController 状态机和 Timeline 轨道/片段
测试功能运行 EditMode 和 PlayMode 测试,并在域重载后保留结果
运行游戏进入 Play Mode,等待实际状态变化,检查后再停止
查看 Unity 渲染结果捕获 Scene/Game 视图或独立对象的画面,并获取有界的 uGUI 身份/坐标信息及 Camera.main 3D 物理证据
测试 Unity 输入检查 uGUI 射线检测,或合成 Input System 键盘/鼠标序列,在 Play Mode 中录制并重放
构建 UI创建 uGUI 布局并验证生成结果
重建参考 UI测量参考图,构建真实的 Unity UI,捕获画面、对比并迭代
改善游戏手感为 Agent 提供震动、受击停顿、反馈、镜头、音效、奖励和无障碍设计方案
清理看起来像自动生成的 UI检测常见的间距、层级结构、排版、颜色和装饰问题
创建自己的工作室命令添加项目专属的 [HeraTool] 操作,这些操作会自动显示
处理多个已打开的 Editor定位目标项目,并在端口变更后保留该项目的身份信息
对高风险操作要求批准对破坏性操作执行预检查,并仅在获得匹配的批准令牌后继续

简而言之,Hera 不只是一个“按下 Play”的远程工具。它是围绕运行中的 Unity 项目,贯穿整个编辑与检查循环的桥梁。


为什么使用 Hera?

1. AI 可以检查自己的工作

没有 Editor 访问权限时,Agent 往往会以这样一句话收尾:

“这应该能正常运行。”

借助 Hera,它可以用以下证据收尾:

compile: passed
console errors: 0
EditMode tests: 18/18
PlayMode tests: 6/6
button click: verified through EventSystem
final Game View: captured

这就是 Hera 存在的主要原因。

2. 你不再需要充当复制粘贴的中间人

你不再需要反复:

  1. 从 AI 复制代码;
  2. 切换到 Unity;
  3. 等待编译;
  4. 把错误复制回去;
  5. 解释 Scene 层级结构;
  6. 按下 Play;
  7. 描述发生了什么。

AI 可以自行完成其中的大部分流程。

3. 它能与您现有的工具配合使用

常规的生产使用方式是 CLI。任何可以运行 shell 命令的 Agent 都能使用它。

  • Codex
  • Claude Code
  • Cursor
  • GitHub Copilot
  • AntiGravity
  • 脚本和 CI 作业
  • 你自己的自动化工具

无需 Python 服务端,也不必配置宿主协议。

4. 它面向 AI 上下文设计,而不只是面向人类

庞大的工具响应意味着模型要读取更多输入。因此,Hera 会为常用命令提供精简视图,例如仅返回 ID 的 GameObject 搜索结果,以及按需提供的工具架构。

目标很简单:只向 Agent 发送足以做出下一步决策的最少 Unity 状态信息。

5. 它明白“请求已发送”不等于“工作已完成”

Unity 会重新编译脚本、重新加载域、更改端口、进入 Play Mode、运行测试,有时还会在此过程中断开连接。

Hera 会跟踪这些工作流,而不会把 HTTP 请求发送成功当作 Unity 已完成工作的证明。

6. 它可以随项目一起成长

从内置命令开始。之后,你可以为项目中每天重复的工作流添加一个 [HeraTool]:构建地牢房间、验证任务图、烘焙表格、生成测试战斗,或检查工作室专属的资源规则。


效果如何?

Hera 不会含糊地宣称拥有“AI 魔法”。仓库会保留具体的测量数据和兼容性证据。

常见 Agent 读取的响应较小

在测试的 Unity 版本中,list --compact 的实测低令牌基线约为 93 个估算令牌。在保留的跨版本测试样本中,find_gameobjects --ids 的实测结果为49 至 55 个估算令牌。

| Unity 编辑器 | list --compact | find_gameobjects --ids | | list --tool <name> --action <action> | 只读取所选操作的参数、结果和安全性。 | |:---|---:|---:| | 2022.3.62f2 | 93 T | 54 T | | 2023.2.22f1 | 93 T | 54 T | | 6000.3.5f2 | 93 T | 49 T | | 6000.5.0f1 | 93 T | 55 T |

T 是仅针对 Hera CLI 负载的简单估算值,计算方式为 ceil(UTF-8 bytes / 4)。它不是提供商的计费遥测数据。完整方法:令牌缩减基准测试。

在多个 Unity 代际中检查兼容性

支持的 Unity 版本为 Unity 6.6+(最低版本为 6000.6)。发布编译门禁会在一次性空项目中,将 Connector 的确切源代码作为常规 UPM 依赖项安装到指定的代表性编辑器版本中,并要求编译无误、发布门禁测试套件全部通过,且控制台错误为零:

分组代表性编辑器最近一次完整门禁结果
6000.6+6000.6.6f1PASS

该最低版本仅说明实际验证过的范围:单个代表性编辑器,不对任何其他 Unity 版本系列作出兼容性声明。AgentConnector/package.json 设定了 6000.6 的最低版本,因此 Package Manager 会在较旧的编辑器上拒绝安装 Connector,而不是等到编译时才失败。

CLI 和 Connector 的版本有意保持独立。

v0.2.0 在真实编辑器中进行了测试,而不只是通过编译测试

最终发布候选版本以 Connector 0.0.86 的身份加载到 Unity 6000.5.6f1 中,使用 Input System 1.20.0,并在发布前通过真实的 Play Mode 驱动。保留的冒烟测试证据记录了:

  • 实时目录中包含 31 个工具 / 80 个操作;
  • 在 Play Mode 中合成键盘按下/抬起和鼠标位置;
  • 有界输入序列成功完成;
  • 一次输入录制包含 5 个事件 / 588 字节,随后对同一文件成功重放两次;
  • 重放后没有任何由 Hera 控制的输入仍处于按住状态;
  • Connector ReleaseGateTests:18/18 PASS;
  • 运行结束后 Unity Console 错误数:0;
  • 编辑器正常关闭,且没有新增场景恢复备份(0);同时,一次性测试清单和锁文件已恢复。

这为五版本编译矩阵补充了针对已发布功能集的端到端编辑器回归测试。

一次真实的游戏创建任务达成了经过验证的可玩结果

在保留的 Crystal Forge 场景中,要求 AI 编写代码和测试、构建 UI、编译、通过 Unity EventSystem 驱动输入、运行测试、捕获渲染结果,并保持 Editor 干净。

最终结果:修复后通过。首次尝试:失败。

测得的执行时长为 15 分钟 52 秒。这次运行很有参考价值,因为失败过程没有被删改。它展示了闭环验证为何重要:UI 真正显示之前,隐藏状态看起来是正确的;而 Agent 必须再次观察、修复并验证。

这并不是说 Hera 能让每项任务都一次成功,也不是「AI 智能提升 X%」的基准测试。它展示的是更实用的一点:Hera 能为 Agent 提供足够的真实 Editor 反馈,让 Agent 找出并修复集成故障,而不是在给出第一个看似合理的答案后就停止。

完整证据:Crystal Forge 真实场景基准测试。


如何使用?

只需要两部分:

your computer                 your Unity project
──────────────                ──────────────────
Hera CLI        <---------->  Hera Unity Connector
第 1 步:安装 CLI

最简单的跨平台方式是使用 npm:

npm install --global hera-agent-unity

或者使用原生安装程序。

Windows PowerShell

powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/NotNull92/hera-agent-unity/main/install.ps1 | iex"

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/NotNull92/hera-agent-unity/main/install.sh | bash

检查安装情况:

hera-agent-unity version
其他 CLI 安装方式

通过 Go 安装

go install github.com/NotNull92/hera-agent-unity@latest

手动安装

从 GitHub Releases 下载二进制文件,然后运行:

hera-agent-unity install
第 2 步:添加 Unity 包

在 Unity 中:

Window -> Package Manager -> Add package from git URL

粘贴:

https://github.com/NotNull92/hera-agent-unity.git?path=AgentConnector

或者将其添加到 Packages/manifest.json:

"com.notnull92.hera-agent-unity": "https://github.com/NotNull92/hera-agent-unity.git?path=AgentConnector"

Editor 打开时,Connector 会自动启动。

若要固定现有的 Connector 标签:

"com.notnull92.hera-agent-unity": "https://github.com/NotNull92/hera-agent-unity.git?path=AgentConnector#connector-<version>"

当前已发布的 Connector 固定版本为:

https://github.com/NotNull92/hera-agent-unity.git?path=AgentConnector#connector-0.2.13
第 3 步:打开 Unity 并检查连接
hera-agent-unity doctor --json
hera-agent-unity status

你应该能看到真实的项目路径、Unity 版本、Editor 状态和连接信息。

现在,你只需告诉 Agent:

Use hera-agent-unity for this Unity project.
Check the current Editor state first.
Make the requested change.
Compile it, read the real Console errors, verify the changed object or UI,
and do not say it is finished until Unity is in a clean state.

这就是 Hera 的常规工作流。


可以用它做什么?

修复编译器或运行时错误
Use Hera. Read the Unity Console, find the actual error, fix the code,
compile again, and keep repeating until the error Console is clean.

后台常用的命令:

hera-agent-unity console --type error --lines 20
hera-agent-unity editor refresh --compile
hera-agent-unity console --type error --lines 20
构建功能并验证其可用性
Implement the inventory filter.
Use Hera to compile it, run the relevant EditMode and PlayMode tests,
enter Play Mode if needed, and report the final evidence.
复现游戏漏洞
Open the correct Scene, enter Play Mode, inspect the related objects,
reproduce the bug, fix it, then reproduce the same path again to prove the fix.
根据参考图构建 UI

Hera 可以为 Agent 提供测量反馈循环,而不只是凭感觉调整:

reference image
   ↓ sample colors / measure layout
Unity UI
   ↓ capture
compare
   ↓ fix
capture again

示例命令:

hera-agent-unity manage_ui create --element panel --name HUD
hera-agent-unity manage_ui set_anchor --path /Canvas/HUD --preset stretch --snap true
hera-agent-unity manage_components set --path /Canvas/HUD --property m_Color --value '#1A1A2E'
hera-agent-unity screenshot --overlay --output_path hud_built.png

分小批次使用 manage_ui、manage_components 和 screenshot --overlay,并逐批验证。

无需猜测屏幕坐标即可验证按钮
hera-agent-unity input state
hera-agent-unity input inspect --path /Canvas/StartButton --details true
hera-agent-unity input click --path /Canvas/StartButton --settle_frames 2

这会验证 Unity 的 EventSystem 路径。它不是实际的 Windows/macOS 鼠标点击,因此 Hera 会分别报告这两类证据。

已经使用可选 Input System 包的项目,也可以验证游戏输入,无需添加 Hera 依赖:

hera-agent-unity input state --backend inputsystem
hera-agent-unity input keyboard --key space --mode press
hera-agent-unity input mouse --mode click --button left --position 640,360
hera-agent-unity call input --json '{"action":"sequence","steps":[{"action":"keyboard","key":"space","mode":"down"},{"action":"keyboard","key":"space","mode":"up"}]}'
hera-agent-unity call input --json '{"action":"record","mode":"start"}'
hera-agent-unity call input --json '{"action":"record","mode":"stop"}'
hera-agent-unity call input --json '{"action":"replay","path":"Library/HeraAgent/Recordings/input.json"}'

键盘、鼠标、有界序列、录制捕获和回放都需要 Play Mode。录制内容采用有界的 hera.input-recording/1 JSON 格式,存放在项目目录或系统临时目录下;回放会在修改前验证整个文件,并复用由序列管理的清理机制。Hera 会在运行时解析该包,不会创建设备,并会在 Play Mode 退出时释放所有按住的控件。

自动化重复的 Scene 操作

你可以让 Agent:

  • 创建测试竞技场;
  • 将预制件放置在新的根节点下;
  • 添加并配置 Components;
  • 创建 ScriptableObject 资源;
  • 连接 Animator 状态;
  • 保存 Scene;
  • 随后运行验证。
创建工作室专属工具

如果你的项目有重复的工作流,可以将其封装为自定义 [HeraTool]。该工具会自动出现在 Hera 的实时目录中。

示例:

  • build_test_battle
  • validate_item_database
  • spawn_quest_fixture
  • bake_localization_table
  • check_prefab_rules

因此,Hera 可以从通用的 Unity 桥接工具起步,逐步发展为服务于你自己的游戏制作流程的 CLI。


Ultra Hera:让“完成”意味着已检查

Ultra Hera

完成工作。检查工作。然后再报告结果。

Ultra Hera 是一项用于 AI 辅助 Unity 工作的验证规则。它本身不会编写功能,而是告诉 Agent 如何通过 Hera 仔细检查刚完成的工作。

在以下位置找到它:

HeraAgent -> Hera Settings -> Ultra Hera
模式通俗说明
Off不启用额外的验证规则。
Light默认模式。编译/检查状态、读取错误,并在完成前重新检查已更改的目标。
Ultra适用于重要工作。添加更有力的证据,例如测试、Play Mode、Inspector 读取和截图。

可以把 Light 看作系好安全带,把 Ultra 看作飞行前检查。

当请求听起来像这样时,请使用 Ultra:

  • “准确验证”;
  • “运行并确认”;
  • “匹配这个 UI”;
  • “也检查 Inspector”;
  • “所有测试通过前不要结束”。

目标很简单:Unity 仍处于故障状态时,Agent 不应结束任务。


不只是控制 Editor

Hera 包含可选的指导和创作系统,帮助 Agent 不止于修改原始对象。

Game Feel Mode(Beta)

帮助 Agent 思考游戏玩法的感受,而不仅仅是能否运行:操控手感与输入容错、Update / FixedUpdate / LateUpdate 的分工、屏幕震动、受击停顿、击退、镜头、音效、奖励呈现、触觉反馈、游玩节奏和无障碍限制。

hera-agent-unity asset-config gamefeel on
hera-agent-unity game_feel hit_stop
hera-agent-unity game_feel unity_frame_loops

这些知识用于提供指导。Hera 不会暗中向你的游戏添加沉重的运行时系统。

Game Feel UI Mode(Beta)

添加实用的 UI 反馈方案,例如悬停缩放、按压挤压、弹窗入场、数字递增文本、生命条响应、冷却反馈和无障碍基准。

hera-agent-unity asset-config gamefeel-ui on
Unity De-slop Mode(Beta)

帮助 Agent 发现常见的、看起来像生成内容的 UI 习惯:不必要的装饰、薄弱的间距系统、层层嵌套的方框布局、装饰性斜体、不一致的颜色,以及其他视觉特征。

hera-agent-unity asset-config uislop on
hera-agent-unity ui_slop box-in-box

这些规则包含例外情况,因此像物品栏格子这样的功能性游戏 UI 不会仅仅因为重复而被简化。

资源偏好和编译器默认值

可以将 Odin 和 DOTween 等已知资源设为偏好。启用某项资源并不会安装它;这会让生成的 Agent 规则和 AI JSON 在项目实际包含该资源时优先使用其 API。

hera-agent-unity asset-config enable odin_inspector
hera-agent-unity asset-config --json
hera-agent-unity asset-config set-csc <path-to-csc>
hera-agent-unity asset-config set-dotnet <path-to-dotnet>

编译器默认值会由下一次 exec 调用读取,无需重启 Editor。你也可以通过 HeraAgent -> Hera Settings 配置相同的值。


命令概览

你无需记住这些内容。列出它们是为了让你了解 Hera 向 Agent 提供的功能。

命令通俗说明
doctor --json“Hera 是否已安装,并且能连接到 Unity?”
status / ping检查 Editor 状态和运行情况。
list --compact快速发现可用的内置工具和项目专属工具。
call <tool>验证严格的实时工具契约,然后调用工具。
console读取或清空真实的 Unity Console。
scene检查、创建、加载、保存、激活、列出或关闭 Scene;转储 GameObject 树。
find_gameobjects搜索已加载 Scene 的层级结构。
manage_gameobject创建和编辑 GameObject。
manage_components读取、添加、移除或修改 Component。
manage_assets处理 Assets/ 下的项目资源,从项目外导入文件,并追踪依赖项。删除操作会将文件移至操作系统的废纸篓。
manage_prefab创建、实例化和编辑 Prefab 资源,并应用、还原或解包实例的覆盖项。
manage_animation创建 AnimationClip 和 AnimatorController 状态机,并读取其内容。
manage_timeline创建和检查可选的 Timeline 资源、轨道和剪辑,无需依赖相关软件包。
manage_settings读取和更改物理、时间、画质、玩家、音频、图形、旧版输入、光照和旧版 NavMesh 设置,并提供预览和审批。
bake触发、轮询、取消或清除光照/NavMesh/遮挡烘焙。
build为当前目标排队执行 Player 构建,并读取精简报告。
exec在 Editor 中运行任意的、可感知项目环境的 C# 代码。
editor启动/重启指定项目,或执行播放、停止、暂停、刷新和编译操作。
test运行、列出、恢复或取消 Unity 测试,可按名称、类别或程序集筛选。
task检查持久化的测试/软件包任务,而不联系 Unity。
screenshot捕获 Scene/Game 视图、ScreenSpaceOverlay 画布或独立对象;还可选择返回有界的 uGUI、3D 碰撞体或 UI Toolkit Editor 窗口元数据。
input测试 uGUI,或合成可选的 Input System 键盘/鼠标/序列输入,并在 Play Mode 下录制/回放。
profiler读取 Profiler 层级快照和单次调用性能统计。
game_feel查询游戏手感指导。
ui_slop查询 UI 清理指导。
batch在一个请求中运行多个操作。
自定义 [HeraTool]调用由你自己的 Unity 项目定义的工具。

完整参考:docs/COMMANDS.md。


教你的 AI Agent 自动使用 Hera

你可以将 Hera 的操作规则放入项目中,让 Agent 知道在猜测之前先检查 Unity。

Codex 插件
codex plugin marketplace add NotNull92/hera-agent-unity --ref main

然后打开 /plugins,选择 Hera Agent Unity,并启用 Hera Unity。

独立 Agent Skill
npx skills add NotNull92/hera-agent-unity --skill hera-agent-unity --agent codex
共享的 AGENTS.md
hera-agent-unity doctor --agent-rules --compact >> AGENTS.md

精简版默认指导有意保持简短。经审核的基线为 2,315 UTF-8 字节,包含引导、目标选择、审批、安全和验证方面的重要规则。完整指南可按需获取。

此仓库还在 examples/rules 下提供了适用于 Cursor、Copilot、AntiGravity、Continue 和其他 Agent 环境的模板。


通俗说明安全性和可靠性

Hera 可以对 Unity 项目进行实际更改,因此仅仅“快”还不够。它还需要知道何时停止。

它识别的是项目,而不仅仅是端口号

Unity 可能会在域重新加载或重启后更改本地端口。Hera 优先使用规范化后的完整项目路径作为 Editor 标识,并将端口视为临时端点。

如果打开了多个 Editor,请使用:

hera-agent-unity --project /full/path/to/project status

如果目标不明确,操作会失败,而不是进行猜测。

高风险操作可能需要审批

需要审批的工作会先进行预检。返回的令牌与该请求精确绑定,且只能使用一次。更改目标或参数会使审批失效。在你已信任的 shell 或 CI 任务中,--yes(环境变量:HERA_AGENT_APPROVE=1)会在同一次调用中通过预检,而不是返回 APPROVAL_REQUIRED——预检和操作记录仍会照常执行。

不会盲目重复不确定的变更操作

如果在重新加载或超时期间响应丢失,Hera 会在符合条件的重试前检查 Editor 的最新所有权和状态。不会仅仅因为网络响应不明确就重新发送变更操作。

可以恢复耗时测试,而不必重新启动

长时间运行的 Test Runner 任务可能超出常规请求时限。Hera 会保存持久化的运行状态,以便 Agent 可以继续等待同一次运行,而不会意外启动另一轮测试执行。


Unity 版本

Unity 版本状态代表性验证
6000.6+支持6000.6.6f1 发布门禁
早于 6000.6不支持最低要求为 Unity 6.6(6000.6)

版本特有的行为会通过运行中的 Editor 进行检查,而不是根据某个 Unity 版本进行推断。

  • 代表性 Editor 与作者游戏所用的 Unity 系列保持一致:目前为 6000.6,以 6000.6.6f1 为代表。
  • 新系列发布稳定版后两周内,添加一个代表版本并运行 Connector 发布门禁;不跟踪 alpha 和 beta 版本。门禁通过前,将该系列标记为 检查中。
  • 游戏开发冲刺优先:冲刺期间延后这些检查,并将该系列保持为 检查中。
  • 仅当游戏迁移到新系列,或实际案例表明旧系列阻碍必要修复时,才提高最低版本要求。提前一个小版本在本 README 和 CHANGELOG 中公告,在 Connector 的次要版本中提高最低要求,并在此列出支持旧系列的最后一个 Connector 标签,以便用户固定到 #connector-X.Y.Z。

单一 Agent 接口:CLI

Hera 是一个纯命令行二进制程序。

AI / terminal -> Hera CLI -> localhost Connector -> Unity Editor

任何支持 shell 的编码 Agent 都可以使用它;每条命令都会通过同一目录、审批流程和操作记录,返回格式统一的精简 JSON 封装。

CLI v0.1.0-v0.2.x 还曾包含一个默认关闭、仅支持 stdio 的实验性 MCP 适配器。该适配器已在 v0.3.0 中移除。它位于同一个执行核心之前,因此并未解锁 CLI 原本不具备的 Unity 功能;保留第二种协议接口意味着还要维护第二套发现、审批和结果路径。请直接使用 CLI:用 list 进行发现,用 call 执行类型化调用,在没有专用命令时使用 exec。


Hera 不是什么

  • **不是 AI:**由编码 Agent 做出决策;Hera 提供对 Editor 的访问。
  • **不是游戏运行时工具:**Connector 仅用于 Editor(HeraAgent.asmdef 仅包含 Editor)。
  • **没有第二种协议:**CLI 是唯一的 Agent 接口;没有 MCP 适配器,也没有独立的常驻服务或中继服务。
  • **没有实时通道:**每次调用都是一次请求和一次响应;没有进度流或推送通知。
  • **不能在一条命令中控制多个 Editor:**每条命令只针对一个 Editor;如果同时打开了多个 Editor,请使用 --project 选择目标。
  • 不是沙箱:exec 默认使用 Full Access;Restricted 只是其中一层防护。

新功能必须针对可复现的故障。请参阅贡献指南。


当前版本

  • CLI / GitHub Release:v0.3.23,包含五个原生二进制文件
  • npm:0.3.23(latest)
  • Unity Connector:0.2.13(固定版本请使用 #connector-0.2.13)
  • 许可证:Apache-2.0

npm 发布与 GitHub Release 串联,因此 npm install -g hera-agent-unity 与 GitHub 二进制文件保持同步。

这两个版本号有意分开。CLI 和 Unity 包可以独立演进,同时明确保持兼容性约定。 **从 v0.2.x 升级:**v0.3.8 是首个发布的 0.3 版本,因此也包含具有破坏性的 v0.3.0 变更。实验性 MCP 适配器已移除:不再提供 mcp 命令,也不再使用 HERA_MCP_* 环境变量。现在,失败的请求会声明可如何重试(retryable、state、retry_after_ms),并且心跳会公布目录架构哈希,以便在目录匹配时复用,而无需再次往返。Connector 0.2.x 要求 Unity 6.6(6000.6),其 instance_id 值为 64 位。实时目录提供 34 个工具 / 133 个操作。

v0.2.17 以来的新增内容:

版本变更
v0.3.23 / 0.2.13旧版 NavMesh 变更会将活动场景标记为已修改,而不会保存无关资源。保存场景即可保留这些变更;播放模式期间的写入会被拒绝。CLI 行为没有变化。将 Connector 更新至 0.2.13。
v0.3.22 / 0.2.12资源编辑只保存发生更改的资源文件;manage_assets 的 delete 会将文件移至操作系统回收站。使用 list --tool --action 查询单个操作。缩短了工具描述,并为完整的精简版 Light 规则输出设置了预算。也将 Connector 更新至 0.2.12。
v0.3.21 / 0.2.11Windows PATH 清理会保留原有格式;卸载时会移除实际的状态文件夹;更新时会验证 SHA-256。工具 JSON 保持精简(--compact-json 用于兼容),并新增九个帮助主题。Hera 自身的工具故障不再产生控制台错误,重复提示更短,Restricted exec 会阻止写入截图和分析器文件。也将 Connector 更新至 0.2.11。
v0.3.20指南页面新增决策章节(VIII),汇总已确定的策略,并以通俗语言重写说明。CLI 行为和 Connector 均无变化。
v0.3.19面向公众产品的策略:CONTRIBUTING.md(哪些事项会启动工作、响应目标、兼容性)、一周的安全问题响应目标、“Hera 不是什么”,以及 Hera 如何跟进 Unity 新版本。CLI 行为和 Connector 均无变化。
v0.3.18指南页面移除了两项固定风险(按端口键控的结果查询、阻塞模态窗口检测)及其配图。CLI 行为和 Connector 均无变化。
v0.3.17task status <op_id> 可显示以 OPERATION_OUTCOME_UNKNOWN 结束的命令是否实际运行。它会读取本地操作记录,因此即使 Editor 处于阻塞状态也能立即回答;超时消息现在会指出此命令。Connector 无变化。
v0.3.16Agent 指南(doctor --agent-rules)新增“一个 Editor 一次只运行一条命令”:CLI 超时后放弃的命令仍会在之后运行,因此请为每个 Agent 分配独立的 Editor,并在重新发送前重新读取目标。CLI 行为和 Connector 均无变化。
v0.3.15在 Windows 上,超时消息会说明自定义和嵌套的 Editor 模态窗口(并显示窗口标题);自动关闭的进度窗口不再被报告为需要人工关闭的对话框。来自另一个活动进程的心跳不再被视为 Editor 重启。Connector 无变化。
v0.3.14 / 0.2.10异步等待和 test --resume 在域重载导致 Editor 端口变更后仍能找到原始结果;测试运行锁和 test cancel 可识别来自任何端口的运行。资源导入工作进程不再启动 Connector,因此不会覆盖项目心跳或占用端口。也将 Connector 更新至 0.2.10。
v0.3.13指南页面更名为“Hera Unity Status”:包含请求流向图、说明各工具的技能树、风险图鉴和嵌入式配图。CLI 和 Connector 行为均无变化。
v0.3.12新增独立的 Hera 指南页面(docs/guide/index.html);CLI 和 Connector 行为均无变化。
v0.3.11十进制和指数形式的参数使用 Unity 的参数哈希;包任务会等待真实结果端口。
v0.3.10 / 0.2.9Game Feel UI 配方在每个 Editor 会话中按元素类型仅附加一次;manage_components 移除了冗余的 type/enabled 字段;精简版 Agent 规则缩减至 2,315 B。
v0.3.9域重载期间,CLI 会持续重试最后一个有效端口,而不是连接端口 0。
v0.3.8 / 0.2.8默认负载更精简:除非明确指定 --depth 3 或更高值,否则 exec 会将 Unity Objects 返回为 {name, type, instanceID}(Transform 的大小从 7,178 B 降至 70 B);scene hierarchy 会省略默认的 active/children;错误封装会移除重复提示和耗时信息。
v0.3.7Windows Editor 启动流程也会在 Unity Hub 的次要安装文件夹中查找版本。
v0.3.6list --profiles 和 list --profile <name> 会显示缓存目录中的任务范围工具集。
v0.3.5请求因 Editor 原生对话框而受阻时,会报告 blocked_by_dialog 和对话框标题(Windows)。
0.2.5–0.2.7测试分片遵循与未分片运行相同的选择器规则;exec 会写入仅含元数据的日志。
v0.3.4 / 0.2.4test --format junit|nunit 生成产物,并支持确定性的 --shard-index/--shard-count 分割。
v0.3.1–v0.3.3目录基线用于衡量 CLI;修复 64 位 ID;对受 Undo 覆盖的编辑执行原子批次预检。
有关各版本的工程细节,请阅读 CHANGELOG.md,不要将主 README 当作迁移日志。

Hera 的内部工作原理是什么?
Terminal / AI agent
        |
        | hera-agent-unity command
        v
Go CLI
        |
        | localhost HTTP
        v
Unity Editor package
        |
        | serialized Unity main-thread work
        v
Scene, Console, Play Mode, Assets, Tests, UI

Unity 包会启动本地 HTTP 监听器。CLI 根据本地心跳状态选择目标 Editor 并发送命令。Unity 操作会被调度到 Editor 主线程。

域重载和长时间运行的操作会使用基于文件系统的状态,因此即使 HTTP 监听器被重新创建,编译、测试和恢复操作也能继续进行。

架构详情:docs/ARCHITECTURE.md。

有关高级 exec、令牌和异步操作的说明
  • 如果有专用命令,请优先使用专用命令,而不是任意 exec。
  • ID 足够时,请使用 find_gameobjects --ids 等精简投影。
  • 有副作用的 exec 代码片段通常应返回 null 或不返回任何内容,而不是大型状态对象。
  • 除非确实需要反射得到的对象图,否则不要返回完整的 UnityEngine.Object。
  • 如果日志中的错误必须导致 CLI 操作失败,请使用 --strict 或抛出异常。
  • 如果代码片段只需要平台 API,并且应禁止访问文件、网络、进程、反射、本机、线程、UnityEditor 和项目程序集,请使用 --security-mode restricted。默认仍为 Full Access。
  • 如果想在不执行代码片段的情况下检查其能否编译,请使用 exec --check。
  • 长时间运行的异步工作流最好表示为受跟踪的 [HeraTool] 操作或持久化任务/测试操作,而不是在一次性 exec 中启动后脱离跟踪。

完整的 Agent 操作指南请参阅 AGENTS.md。


常见问题

Hera 能让 AI 变得更聪明吗?

不能。Hera 为 AI 提供更好的方式来访问真实的 Unity 状态并验证结果。编码模型仍负责设计和实现决策。

需要 Python 吗?

不需要。常规安装只需一个原生 CLI 和一个 Unity 包。

需要宿主协议吗?

不需要。CLI 是唯一的操作界面。它通过本地主机 HTTP 与 Unity 包通信,不使用其他方式。

它能控制多个已打开的 Unity Editor 吗?

每条命令只面向一个 Editor。如果同时打开了多个 Editor,请使用完整的 --project 路径,以便更明确地选择。即使本地端口发生变化,Hera 也会跟踪所选项目的身份。

它能实际点击 Unity 窗口吗?

input 命令会发送 Unity EventSystem 事件,以进行 uGUI QA;在 Play Mode 中还可以选择性地模拟 Input System 键盘/鼠标状态。这两种方式都能验证 Unity 层面的行为,但不代表实际点击了操作系统。实际点击的证据必须单独报告。

如果无法连接,我该怎么办?
hera-agent-unity doctor --json

还要检查是否已安装 Unity 包,以及 Editor 是否已完成编译。

哪里可以找到详细文档?

使用 Hera 的项目

项目说明
NoMoreRolls个人开发的 Unity 游戏。借助 AI 通过 Hera 操作 Editor 构建。

https://github.com/user-attachments/assets/15d353e4-b7bb-4534-bbca-c27de0792147

NoMoreRolls - 使用 Hera 辅助操作 Editor 构建的 Unity 游戏的完整 Play Mode 视频。


作者

Victor - Unity/C# 开发者,拥有 6 年以上在线服务型 MMORPG 生产经验。

GitHub: @NotNull92

Discord:加入 Hera 社区


支持

Hera 免费,采用 Apache-2.0 许可。如果它为你节省了时间,可以支持项目开发:

在 Ko-fi 上支持


许可证

Apache License 2.0。请参阅 LICENSE 和 NOTICE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。