前言¶
在 Unity 里改场景、摆模型、存盘、截图,通常要人手点菜单或写 Editor 脚本。若希望对话式 Agent 直接驱动编辑器——例如「在 Unity 里新建场景并放一个球」——就需要编辑器侧常驻服务,并能用统一协议收指令。下面介绍 SkillHub 上的 Unity_Ops(坐标 @user_2bb7cf23/unity-ops):在本地通过 TCP 向 Unity 发送 JSON 指令,完成场景、模型、截图与资产刷新等操作;内置命令不够时,还可在工程内按扩展指南新增 C# 命令。
这是什么¶
Unity_Ops 是面向 AI Agent 的社区 Skill(分类 ai-agent,版本 1.0.0,标签 requires_api_key=false)。它把 Agent 与 Unity 编辑器之间的交互固定为:本机 TCP Socket(默认 127.0.0.1:8888)+ UTF-8 JSON,由 Unity 工程内的 Editor 脚本监听并执行。Skill 会把 UnityOpsListener.cs、CoreOperations.cs 同步到工程的 Assets/Editor/UnityOps/,无需 API Key。
官方页面:SkillHub - unity-ops
API 入口:https://api.skillhub.cn/user_2bb7cf23/unity-ops
核心功能¶
以下能力均来自官方文档中的命令表;请求 JSON 需包含 action 字段,响应为 JSON,status 为 "success" 或 "error"。
场景操作¶
| 命令 | 功能 | 说明 |
|---|---|---|
SaveScene |
保存当前场景 | 可指定场景名,未命名时自动生成 |
NewScene |
新建场景 | 无参数 |
LoadScene |
加载场景 | 需提供场景名或 Assets 路径 |
模型操作¶
| 命令 | 功能 | 说明 |
|---|---|---|
CreateModel |
创建基本几何体 | Cube / Sphere / Cylinder / Capsule / Plane;可设位置、旋转、缩放 |
DeleteObject |
删除场景对象 | 按名称删除,可选是否同时删除子对象 |
PlaceAsset |
放置 FBX/Prefab | 需提供资产路径,支持位置/旋转/缩放 |
截图¶
| 命令 | 功能 | 说明 |
|---|---|---|
CaptureScreenshot |
渲染并保存场景截图 | 等距/俯视/正视等视角预设,可自定义分辨率、FOV、相机位置 |
辅助与扩展¶
RefreshAssets:触发AssetDatabase.Refresh()。GetAssetPath:返回 Assets 与项目根目录的绝对路径。Manual:返回 Markdown 格式的完整 API 手册。
当内置命令不满足需求时,Agent 可按 Skill 中的扩展指南,在 Assets/Editor/UnityOps/ 下新建独立 CS 文件实现自定义操作(Skill 自带的 UnityOpsListener.cs、CoreOperations.cs 禁止修改,仅允许从 Skill 单向复制到工程)。
安装与启用¶
在 Agent 侧安装 Skill¶
从 SkillHub 安装坐标 @user_2bb7cf23/unity-ops(具体命令以你所用的 Cursor / Codex CLI / Claude Code 的 Skill 安装方式为准;官方资料未区分各客户端差异时,以 SkillHub 页面说明为准)。
Unity 工程侧准备¶
- 将 Skill 中的
UnityOpsListener.cs、CoreOperations.cs放到工程的Assets/Editor/UnityOps/。 - 满足系统要求:官方写明在 Unity 2022.3.62 与 KnotClaw 下测试通过;进程检测与端口轮询依赖 Windows + PowerShell。
方式一:自动启动(推荐)¶
- 在对话中提到「在 Unity 中 …」「使用 UnityOps」等,触发 Skill。
- Skill 会检查 Unity 是否已打开、端口 8888 是否有 UnityOps 服务,并同步 CS 脚本到工程。
- 若 Unity 未运行或服务未起,可自动启动 Unity 并附带
-startServer -port 8888,使服务就绪。 - 通过 TCP 发送 JSON 执行操作。
方式二:在 Unity 菜单手动开启¶
Unity 已打开但服务未运行时:
- 确认上述 CS 脚本已在
Assets/Editor/UnityOps/。 - 菜单 Tools → UnityOpsListener,在窗口中点击 「启动服务器」。
- 默认监听 8888;可用命令行
-port修改。控制台出现Server started on port xxx即表示就绪。
通信摘要:
协议:TCP,默认 127.0.0.1:8888
请求:UTF-8 JSON,含 action 字段
响应:JSON,status 为 success 或 error
典型用法¶
官方未给出完整 JSON 样例时,可按协议自行构造。逻辑上例如:
- 触发 Skill 或确认 8888 服务已启动。
- 发送
action为NewScene的请求新建场景。 - 发送
CreateModel,指定几何体类型(如 Sphere)及变换。 - 发送
SaveScene保存;需要预览时发送CaptureScreenshot。 - 导入新资源后发送
RefreshAssets;路径不确定时先GetAssetPath或Manual查文档。
Agent 也可先调用 Manual 拉取 Markdown API,再按字段拼 JSON。
适用场景与注意¶
适合:
- 在 Unity 场景中创建、移动、删除 3D 对象(内置几何体或 Prefab/FBX)。
- 保存、新建、切换场景。
- 渲染场景快照。
- 从 Agent 发指令控制 Unity 编辑器;对话中出现 UnityOps、Unity Editor 操作,或「在 Unity 中 …」类表述时,Skill 设计为可触发。
限制与注意:
- 默认仅本机 TCP,需自行评估是否暴露端口;官方强调 CS 核心文件不可改,扩展只能新增文件。
- Windows 环境下的自动检测与启动脚本,在其他 OS 上需自行验证。
- SkillHub 页面显示评分为 100000、下载约 899(以页面为准,会随时间变化)。
结尾¶
Unity_Ops 把 Unity 编辑器能力收成一套 TCP + JSON 命令,适合让 Agent 在本地工程里做场景与资产层面的自动化;复杂逻辑可走扩展 C# 命令。安装与文档入口:https://www.skillhub.cn/skills/user_2bb7cf23/unity-ops