mcpField
U
unity-gameobject

unity-gameobject

github.com/besty0728开发1.9k87 次安装今天更新
代码仓库

关于 unity-gameobject

unity-gameobject 是用于管理 Unity 场景物体及层级的技能模块,提供搜索、创建、设父级、变换和批量操作,并说明标识符解析与变换读取结果。

主要功能

  1. 01按名称或属性查找物体
  2. 02创建、复制、重命名和删除物体
  3. 03设置父级与同级顺序
  4. 04编辑变换和激活状态
  5. 05批量处理多个物体
  6. 06查看层级与组件信息

适用场景

  1. 01搭建或重组场景层级
  2. 02生成并定位场景物体
  3. 03对多个物体应用一致修改

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/besty0728/unity-skills --skill unity-gameobject

安装后在 Claude Code 中输入/unity-gameobject确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

reference/
gameobject_create_batch.md
gameobject_create.md
gameobject_delete_batch.md
gameobject_delete.md
gameobject_duplicate_batch.md
gameobject_duplicate.md
gameobject_find.md
gameobject_get_info.md
gameobject_rename_batch.md
gameobject_rename.md
gameobject_set_active_batch.md
gameobject_set_active.md
gameobject_set_layer_batch.md
gameobject_set_parent_batch.md
gameobject_set_parent.md
gameobject_set_sibling_index.md
gameobject_set_tag_batch.md
gameobject_set_transform_batch.md
gameobject_set_transform.md

详细介绍

触发条件

  • 构建或重构场景层级
  • 生成或移除物体
  • 调整 Transform
  • 搭建或调整场景层级、新建或删除物体、修改 Transform

Unity GameObject 技能

创建、查找、设为父级并变换场景物体。参数来自 schema(建议使用 includeSchema=true 或 /skills/schema?names=),其中会注明不明显的参数——不要根据技能名称推断。执行、dryRun 和验证规则:根目录 SKILL.md。

操作模式

gameobject_find / gameobject_get_info 为 SemiAuto(只读);其他技能均为 FullAuto。gameobject_delete / gameobject_delete_batch(Operation.Delete)在 Semi 中禁止:在 Approval/Auto 下为 MODE_FORBIDDEN,仅在 Bypass 或命中 Allowlist 时运行 → 操作模式。

通用规则

  • 标识符:entityId(字符串;Unity 6000.4+ 中,instanceId 的读取结果为 0)、instanceId(整数,适用于较旧的 Unity)、path("Parent/Child",不区分大小写,可选场景名称前缀)、name。至少提供一个;优先级为 entityId > instanceId > path > name,若 ID 已失效或路径未找到,则会继续尝试下一个提供的标识符。
  • 名称匹配:完全匹配的名称优先(多个对象同名时,选择层级顺序中的第一个);否则使用唯一的整词或子串匹配。若存在多个模糊匹配,则返回 TARGET_NOT_FOUND 和 candidates(各项包含 path + entityId),而不会猜测。非完全匹配的解析结果会列在顶层 resolutionNotes 中。
  • 坐标空间:除非设置 space:"world"(在设为父级后应用),否则 gameobject_create 的 x/y/z 和 rotX/Y/Z 均相对于父级。gameobject_set_transform 的 posX/Y/Z 和 rotX/Y/Z 使用世界坐标,localPosX/Y/Z 使用局部坐标;应用顺序为世界位置、局部位置、旋转、缩放,因此同一轴上局部值优先,省略的轴保持原值。scaleX/Y/Z 始终对应 localScale。RectTransform 字段(anchor*、pivot*、sizeDelta*、width/height)仅适用于 UI。
  • 回读:create、set_transform 及其批量操作会返回回读的 Transform——position(世界坐标)、localPosition、rotation(世界欧拉角,0–360)、scale(局部坐标),与 gameobject_get_info 报告的值一致;无需后续读取。
  • 批量操作(items = JSON 数组):要么全部成功,要么全部失败。任何一项失败都会回滚整个调用(rolledBack:true,其他项目为 reverted:true,错误为 SEMANTIC_INVALID);修复失败项后重新发送全部项目。未知项目键会被忽略,并列在 warnings 中。项目使用对应单项技能的标识符和字段;gameobject_create_batch 中的项目可以将同一次调用中更早创建的项目设为父级。

技能概览

处理 2 个或更多对象时,使用 *_batch(一次调用,而不是 N 次)。

单个批量
gameobject_creategameobject_create_batch
gameobject_deletegameobject_delete_batch
gameobject_duplicate(同级 <name>_Copy)gameobject_duplicate_batch
gameobject_renamegameobject_rename_batch
gameobject_set_transformgameobject_set_transform_batch
gameobject_set_activegameobject_set_active_batch
gameobject_set_parent(不提供父对象 ID 表示取消父子关系)gameobject_set_parent_batch
-gameobject_set_layer_batch
-gameobject_set_tag_batch
gameobject_set_sibling_index(索引会被限制在有效范围内)-

查询(无批量版本):gameobject_find(按名称子串或正则表达式、标签、层、组件查询)、gameobject_get_info(变换、父对象、子对象、组件)。

各技能的表格、项目字段和返回结构:reference/<skill_name>.md — 通常不需要查看,架构说明中包含参数。

不要(常见幻觉):

  • gameobject_move / gameobject_rotate / gameobject_set_scale / gameobject_set_position 不存在 → 请使用 gameobject_set_transform
  • gameobject_add_component 不存在 → 请使用 component_add
  • gameobject_get_transform 不存在 → 请使用 gameobject_get_info

其他:组件 → component_* 技能;材质或颜色 → material_* 技能;scene_find_objects(SemiAuto)也会搜索对象。

精确签名

名称、参数、默认值和必填标记来自 GET /skills/schema?category=GameObject(或 ?names=a,b),而非本文件。

常见错误

错误修复方法
TARGET_NOT_FOUND(对象、父对象、子对象、层)使用 candidates 条目中的 path / entityId 重试,或通过 gameobject_find / scene_get_hierarchy 查找。
MISSING_PARAM提供该参数(例如 newName、items);错误信息(或 dryRun)会列出所有参数。
SEMANTIC_INVALID使用消息中允许的值(primitiveType、space 的 local/world、已注册的标签),或修正失败的 results 项。

传输代码(COMPILING、RATE_LIMIT 等)→ 错误代码。

评论

支持 Markdown