unity-component
GitHub管理Unity游戏对象组件,支持挂载、移除、复制、开关及读写序列化字段。涵盖单对象与批量操作,处理类型解析、属性命名映射及值编码,包含只读半自动与写入全自动模式,并限制高危删除操作。
Trigger Scenarios
Install
npx skills add Besty0728/Unity-Skills --skill unity-component -g -y
SKILL.md
Frontmatter
{
"name": "unity-component",
"description": "Manage GameObject components"
}
Triggers
- Attaching or removing components
- Copying components between objects
- Toggling components
- Reading/writing serialized fields
- 挂载或移除组件、在对象间复制组件、开关组件、读写序列化字段
Unity Component Skills
Add, remove, copy, toggle and edit components. Parameters come from the schema (recommend includeSchema=true or /skills/schema?names=), which notes the non-obvious ones — never from a skill's name. Execution, dryRun and verification rules: root SKILL.md.
Operating Mode
component_list, component_get_methods, component_get_methods_batch, component_get_properties, component_get_serialized_properties are SemiAuto (read-only); every writer is FullAuto. component_remove / component_remove_batch (Operation.Delete) and component_invoke_method* (high risk) are NeverInSemi: MODE_FORBIDDEN under Approval/Auto, run only under Bypass or an Allowlist hit → operating mode.
Shared rules
- Targets: single-object skills take
name,instanceIdorpath(plusentityId, resolved to the path), matched like GameObjects: an ambiguous fuzzy name returnsTARGET_NOT_FOUNDwithcandidates, non-exact matches are listed inresolutionNotes. Batch items take onlyname/instanceId/path: anentityIditem key is ignored (named inwarnings), so the item finds no target.component_copy*usesource*/target*identifiers. componentType(required): the class name —Rigidbody,BoxCollider,Namespace.ClassNamefor custom scripts. Unity, UI, TextMeshPro, Cinemachine and Input System namespaces are searched first, then a case-insensitive scan that takes the first matching type; the response'scomponent/fullTypeNameshow what was resolved.- Two naming schemes:
component_set_property/component_get_propertiesuse C# member names (mass,isKinematic; matched case-insensitively, private fields writable too).component_get_serialized_properties/component_set_serialized_propertyuse SerializedProperty paths (m_Mass,items.Array.data[0]; a baremassis retried asm_Mass). To convert, dropm_and lowercase the first letter; anm_name sent tocomponent_set_propertyfails with "Property/field not found" and lists the writable members. - Value source (
component_set_property, its batch,batch_preview_set_property): exactly one ofassetPath(project asset) >referencePath(scene object by path) /referenceName(by name, first match) >value, checked in that order; a lower one sent alongside is silently ignored. Sending none writes the type's default (0 / false / null). valueencoding: numbers and bools (true/false,1/0,yes/no,on/off; others rejected) as JSON or strings; enums by member name, case-insensitive; vectors, Quaternion (3 values = euler, 4 = xyzw), Rect (x,y,w,h) and Bounds (cx,cy,cz,sx,sy,sz) as comma strings ("1,2,3"); colours as"r,g,b[,a]"(0–1),#RRGGBB[AA]or a name (red, green, blue, white, black, yellow, cyan, magenta, gray/grey, clear); LayerMask as a layer name or an integer mask. The JSON object form ({"x":1,"y":2,"z":3},{"r":1,"g":0,"b":0}) works only for Vector2/3/4 and Color/Color32, with every component required (colouradefaults to 1; an explicitnullcounts as missing); partial objects, unknown keys and non-numbers are rejected naming the expected keys.- Read-back:
component_set_propertyreturnsvalueSetread from the component after the write, plusvalueRequestedonly when the setter clamped or normalised it;component_set_serialized_propertyre-reads after applying. No follow-up read needed. - Property/add/remove batches: all-or-nothing — one failed item reverts the whole call (
rolledBack:true, other itemsreverted:true); unknown item keys are named inwarnings.
Skills Overview
Invocation batches are non-atomic async jobs; details: method calls.
| Single | Batch |
|---|---|
component_add |
component_add_batch |
component_get_methods |
component_get_methods_batch |
component_invoke_method |
component_invoke_method_batch |
component_remove |
component_remove_batch |
component_set_property |
component_set_property_batch |
component_set_serialized_property |
component_set_serialized_property_batch |
No batch: component_list (types and enabled state), component_get_properties (C# members and values), component_get_serialized_properties (Inspector paths), component_copy, component_copy_exact (verifies every serialized field), component_set_enabled (Behaviour/Renderer/Collider on or off — not component_set_property).
Per-skill tables, item fields and return shapes: reference/<skill_name>.md — rarely needed, the schema notes the parameters.
DO NOT (common hallucinations):
component_create/component_getdo not exist → usecomponent_add(add) andcomponent_get_properties(read)component_finddoes not exist → usecomponent_listto list components on an object
Exact Signatures
Names, parameters, defaults and required flags come from GET /skills/schema?category=Component (or ?names=a,b), not this file.
Common Errors
| Error | Trigger → fix |
|---|---|
TARGET_NOT_FOUND |
Object, component type, component on the object, member or asset missing → component_list, component_get_properties, asset_find, gameobject_find. |
MISSING_PARAM |
e.g. componentType, propertyName, propertyPath → supply it; the error (or a dryRun) lists all parameters. |
SEMANTIC_INVALID |
A value the target type rejects, componentIndex out of range, a component another one still requires (requiredBy: remove those first), or a failed batch item → fix per the message / results. |
SKILL_ERROR |
Read-only property → pick a writable member. |
Transport codes (COMPILING, RATE_LIMIT, ...) → error codes.
Version History
-
67cd2ca
Current 2026-10-18 21:38
同步2.9.1技能集文档,更新技能计数与模块文档,调整NeverInSemi列表以包含component_invoke_method*等高危技能,修正部分技能的返回形状描述。
-
8c31c5a
2026-08-27 12:43
修复模块文档审计问题,更新地址资源相关文档,修正幽灵场景引用、自动权限流程误导及缺失参数等错误。
-
5ee8388
2026-08-17 04:10
精简根文档体积至6.2KB,将协议细节移至参考文件;新增SKILL_GUIDE.md指导模式文档;更新模块说明为英文仅描述并添加常见错误章节;版本锚点升级至2.6.0。
-
25d511e
2026-08-13 09:13
压缩75个SKILL.md description至约5191字符,并将路由说明移入Triggers部分。
-
e49379b
2026-07-31 06:53
版本升级至2.4.0
- ec9f870 2026-07-05 14:39


