【免费下载链接】Unity-Skills
AI automation skills specifically designed for Unity
Unity-Skills 是专为 Unity 设计的 AI 自动化 Skills 引擎,让 AI 通过 REST API 直接操控编辑器。它的批量操作(POST /skills/batch)是效率神器:一次 HTTP 请求、一条事务,就能按顺序执行最多 50 个技能步骤,并且支持用$ref跨步骤引用前面步骤的返回值,配合?mode=transactional事务模式实现失败自动回滚——全部成功才提交,任何一步失败则整体撤销,像数据库事务一样安全。
为什么批量操作是 Unity AI 自动化的必修课 🚀
让 AI 逐个调用技能接口,意味着 N 次 HTTP 往返、N 次唤醒 Unity 主线程,稍慢且容易中途断档。而POST /skills/batch端点把 N 个技能调用合并为一次往返、一次主线程唤醒:
- 每个步骤仍走完整的单技能流水线(参数校验、权限门、独立 Undo 组、审计日志),安全不打折
- 步骤数上限 50,超过会被
400 SEMANTIC_INVALID拒绝,此时拆分调用即可 - 每个步骤都有独立的
status(success / error / skipped),结果一目了然
批量技能文档入口:skills/batch/SKILL.md
$ref 跨步引用:让步骤之间"接力传值" 🔗
批量脚本中最常见的痛点:第二步要用到第一步创建的对象。以往只能靠对象名查找,而同名对象可能"撞车"。$ref的解法极其优雅——用 JSON 节点直接引用前面某个成功步骤的返回结果:
{ "steps": [ {"skill": "gameobject_create", "args": {"name": "Cube", "primitiveType": "Cube"}}, {"skill": "component_add", "args": {"instanceId": {"$ref": "$0.instanceId"}, "componentType": "Rigidbody"}} ] }规则速览(详见 SkillsHttpServer.BatchRefs.cs 实现):
| 要点 | 说明 |
|---|---|
| 语法 | {"$ref":"$N.path"},N 为 0 起始的步骤序号,$0表示整个结果,$0.instanceId、$1.items[0].path表示其中的字段 |
| 方向限制 | 只能引用更早的步骤,前向引用会失败 |
| 失败即拒绝 | 引用了失败步骤或不存在的字段,该步骤以SEMANTIC_INVALID报错,而不是静默取空值 |
| 扫描范围 | 只扫描结构化 JSON 参数,不会误伤字符串里的$ref字样 |
| 配合参数化 | {"$param":"name","default":X}可在请求体params中注入值,且优先于$ref解析 |
官方建议:新建对象请通过$ref引用instanceId(Unity 6000.4+ 还有entityId),而不是靠名字查找——同名已有对象可能优先命中,这是批量脚本最常见的隐性 bug。
事务模式:失败自动回滚的"要么全做、要么全不做" 🛡️
普通模式下(continueOnError:false)遇到失败会停止后续步骤,已成功的步骤保留——这是"快速失败"。但当你希望整组操作要么完整生效、要么原样撤销时,加上?mode=transactional即可:
- 全有或全无:任何一步失败,所有已执行步骤通过 Unity Undo 机制逐一回滚,响应返回
status:"rolled_back"、rolledBack:true,每个已执行步骤被标记为rolled_back - 前置拦截:请求在真正执行之前就会做预检——
continueOnError:true、未知技能、或可能触发域重载(Domain Reload)的步骤,直接400拒绝,绝不让事务"半成品"上路 - 诚实提示边界:会写磁盘资产(Asset)的步骤会标记
rollbackReliability:"partial",因为 Undo 无法完全还原已落盘的资产写入——工具不会假装万无一失
⚠️ 注意:同一张图片在本文中已使用,此处请忽略重复占位——实际排版时建议在此处引用编辑器窗口截图。
先 dryRun 预演,再 diff=1 复查:批量操作的最快安全姿势 ✅
高手的三件套顺序,一条命令都不用改,只换 Query 参数:
?mode=dryRun:校验全部步骤但不执行、永不停车。允许某一步引用"稍后才创建"的对象(会附警告),$ref参数只做结构性检查并返回refsValidated?mode=transactional:正式执行,失败整体回滚?diff=1:追加净变更sceneDiff(changed / added / removed),回滚后同样能生成最终 diff,一眼看清"这 50 步到底改了什么"
完整协议细节见 references/SKILL_FULL.md 与 protocol-error-codes.md。
部分失败怎么办?只补发失败步骤 🔧
非事务模式下若出现status:"partial",响应中的results数组会按index标明每一步的结局:
success步骤的修改已生效,不要重发- 失败步骤的 Undo 已记录变更会被自动撤销
skipped步骤从未运行——把修好的失败步骤 + 所有 skipped 步骤重新提交即可
授权类响应(MODE_RESTRICTED/CONFIRMATION_REQUIRED)无论continueOnError如何设置都会中断整个批次并返回授权 token;完成授权后再提交剩余步骤。
另外,批量事务与"预览后提交"(batch_execute+confirmToken,见 batch_execute.md)是两套机制:前者组合 N 个不同技能、无需 token;后者提交一个已预览的批量操作、必须携带一次性 confirmToken。大任务返回jobId后用GET /jobs/{id}?wait=<秒>长等待即可。
动手前的资源清单 📚
| 资源 | 路径 |
|---|---|
| 批量技能总纲($ref、事务、模式全解) | SkillsForUnity/unity-skills~/skills/batch/SKILL.md |
| 22 个批量技能参考文档目录 | SkillsForUnity/unity-skills~/skills/batch/reference/ |
| 批量执行核心服务端实现 | SkillsForUnity/Editor/Skills/SkillsHttpServer.Batch.cs |
| $ref 跨步引用解析实现 | SkillsForUnity/Editor/Skills/SkillsHttpServer.BatchRefs.cs |
| 批量执行器(Undo 分组、事务围栏) | SkillsForUnity/Editor/Skills/BatchExecutor.cs |
| 完整技能协议参考 | SkillsForUnity/unity-skills~/references/SKILL_FULL.md |
一句话总结:$ref解决"步骤间传值",transactional解决"失败怎么办"。掌握这两招,你的 Unity-Skills 批量脚本就能像数据库事务一样稳。
【免费下载链接】Unity-Skills
AI automation skills specifically designed for Unity
相关推荐
OpenCore Legacy Patcher:老 Mac 装新系统的 4 步流程
OpenCore Legacy Patcher:老 Mac 装新系统的 4 步流程 App Store 里搜不到能下载的新版 macOS,更新界面只会提示你换台
操作系统固件驱动开发免费人声分离软件 UVR 5.6 完整教程:三步拆出人声与伴奏
免费人声分离软件 UVR 5.6 完整教程:三步拆出人声与伴奏 Ultimate Vocal Remover(简称 UVR)5.6 是一款免费开源的图形界面工具
音频处理人工智能zhenxun_bot批量操作事务日志:记录操作详情以便回滚
zhenxun_bot批量操作事务日志:记录操作详情以便回滚 在使用zhenxun_bot进行批量操作时,你是否遇到过误操作导致数据异常却无法恢复的情况?事务日
即时通讯后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考