关于 unity-gameobject
unity-gameobject 是用于管理 Unity 场景物体及层级的技能模块,提供搜索、创建、设父级、变换和批量操作,并说明标识符解析与变换读取结果。
主要功能
- 01按名称或属性查找物体
- 02创建、复制、重命名和删除物体
- 03设置父级与同级顺序
- 04编辑变换和激活状态
- 05批量处理多个物体
- 06查看层级与组件信息
适用场景
- 01搭建或重组场景层级
- 02生成并定位场景物体
- 03对多个物体应用一致修改
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ besty0728/ unity-skills --skill unity-gameobject安装后在 Claude Code 中输入/unity-gameobject确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
reference/gameobject_create_batch.mdgameobject_create.mdgameobject_delete_batch.mdgameobject_delete.mdgameobject_duplicate_batch.mdgameobject_duplicate.mdgameobject_find.mdgameobject_get_info.mdgameobject_rename_batch.mdgameobject_rename.mdgameobject_set_active_batch.mdgameobject_set_active.mdgameobject_set_layer_batch.mdgameobject_set_parent_batch.mdgameobject_set_parent.mdgameobject_set_sibling_index.mdgameobject_set_tag_batch.mdgameobject_set_transform_batch.mdgameobject_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_create | gameobject_create_batch |
gameobject_delete | gameobject_delete_batch |
gameobject_duplicate(同级 <name>_Copy) | gameobject_duplicate_batch |
gameobject_rename | gameobject_rename_batch |
gameobject_set_transform | gameobject_set_transform_batch |
gameobject_set_active | gameobject_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_transformgameobject_add_component不存在 → 请使用component_addgameobject_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 等)→ 错误代码。