Modify a specific Component on a GameObject in opened Prefab or in a Scene. Allows direct modification of component fields and properties without wrapping in GameObject structure. Use 'gameobject-component-get' first to inspect the component structure before modifying. Three modification surfaces are available (componentDiff, pathPatches, jsonPatch) — see the skill body for details.
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
Der Befehl bleibt in einer Zeile. Scrollen Sie horizontal, um ihn vor dem Kopieren vollständig zu prüfen.
Sie bevorzugen eine lokale Kopie? Laden Sie die Dateien herunter, die SkillsMP derzeit vorliegen.
SKILL.md wird angezeigt
SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
gameobject-component-modify
description
Modify a specific Component on a GameObject in opened Prefab or in a Scene. Allows direct modification of component fields and properties without wrapping in GameObject structure. Use 'gameobject-component-get' first to inspect the component structure before modifying. Three modification surfaces are available (componentDiff, pathPatches, jsonPatch) — see the skill body for details.
GameObject / Component / Modify
Three modification surfaces
Use whichever fits the task:
componentDiff — full SerializedMember diff (legacy, backwards compatible).
pathPatches — list of {path, value} pairs routed through Reflector.TryModifyAt; atomic per-path modification, multiple entries can target different depths.
jsonPatch — a JSON Merge Patch (RFC 7396, extended with [i]/[key] notation) routed through Reflector.TryPatch; multiple fields at any depth in a single call.
When more than one is supplied they run in this order: jsonPatch → pathPatches → componentDiff. At least one is required.
Path syntax
fieldName, nested/field, arrayField/[i], dictField/[key]. Leading #/ is stripped.
If unity-mcp-cli is not found, either install it globally (npm install -g unity-mcp-cli) or use npx unity-mcp-cli instead.
Read the /unity-initial-setup skill for detailed installation instructions.
Input
Name
Type
Required
Description
gameObjectRef
any
Yes
Find GameObject in opened Prefab or in the active Scene.
componentRef
any
Yes
Component reference. Used to find a Component at GameObject.
componentDiff
any
No
Optional. The full component data to apply (legacy path). Should contain 'fields' and/or 'props' with the values to modify.
Only include the fields/properties you want to change.
Any unknown or invalid fields and properties will be reported in the response.
pathPatches
any
No
Optional. List of path-scoped patches routed through Reflector.TryModifyAt. Each entry targets one field/element/entry by path. Path syntax: 'fieldName', 'nested/field', 'arrayField/[i]', 'dictField/[key]'.
jsonPatch
any
No
Optional. JSON Merge Patch (RFC 7396, extended with [i]/[key] keys) routed through Reflector.TryPatch. Allows multiple fields at any depth to be updated in a single call. Use '$type' for compatible-subtype replacement.
{"type":"object","properties":{"result":{"$ref":"#/$defs/AIGD.ModifyComponentResponse"}},"$defs":{"AIGD.ComponentRef":{"type":"object","properties":{"index":{"type":"integer","description":"Component 'index' attached to a gameObject. The first index is '0' and that is usually Transform or RectTransform. Priority: 2. Default value is -1."},"typeName":{"type":"string","description":"Component type full name. Sample 'UnityEngine.Transform'. If the gameObject has two components of the same type, the output component is unpredictable. Priority: 3. Default value is null."
"object"
,
"additionalProperties"
:
true
}
]
}
}
,
"$defs"
:
{
"System.Type"
:
{
"type"
:
"string"
}
,
"AIGD.GameObjectRef"
:
{
"type"
:
"object"
,
"properties"
:
{
"instanceID"
:
{
"type"
:
"integer"
,
"description"
:
"instanceID of the UnityEngine.Object. If it is '0' and 'path', 'name', 'assetPath' and 'assetGuid' is not provided, empty or null, then it will be used as 'null'. Priority: 1 (Recommended)"
}
,
"path"
:
{
"type"
:
"string"
,
"description"
:
"Path of a GameObject in the hierarchy Sample 'character/hand/finger/particle'. Priority: 2."
}
,
"name"
:
{
"type"
:
"string"
,
"description"
:
"Name of a GameObject in hierarchy. Priority: 3."
}
,
"assetType"
:
{
"$ref"
:
"#/$defs/System.Type"
,
"description"
:
"Type of the asset."
}
,
"assetPath"
:
{
"type"
:
"string"
,
"description"
:
"Path to the asset within the project. Starts with 'Assets/'"
}
,
"assetGuid"
:
{
"type"
:
"string"
,
"description"
:
"Unique identifier for the asset."
}
}
,
"required"
:
[
"instanceID"
]
,
"description"
:
"Find GameObject in opened Prefab or in the active Scene."
}
,
"AIGD.ComponentRef"
:
{
"type"
:
"object"
,
"properties"
:
{
"index"
:
{
"type"
:
"integer"
,
"description"
:
"Component 'index' attached to a gameObject. The first index is '0' and that is usually Transform or RectTransform. Priority: 2. Default value is -1."
}
,
"typeName"
:
{
"type"
:
"string"
,
"description"
:
"Component type full name. Sample 'UnityEngine.Transform'. If the gameObject has two components of the same type, the output component is unpredictable. Priority: 3. Default value is null."
}
,
"instanceID"
:
{
"type"
:
"integer"
,
"description"
:
"instanceID of the UnityEngine.Object. If this is '0', then it will be used as 'null'."
}
}
,
"required"
:
[
"index"
,
"instanceID"
]
,
"description"
:
"Component reference. Used to find a Component at GameObject."
"Full type name. Eg: 'System.String', 'System.Int32', 'UnityEngine.Vector3', etc."
}
,
"name"
:
{
"type"
:
"string"
,
"description"
:
"Object name."
}
,
"value"
:
{
"description"
:
"Value of the object, serialized as a non stringified JSON element. Can be null if the value is not set. Can be default value if the value is an empty object or array json."
"Properties of the object, serialized as a list of 'SerializedMember'."
}
}
,
"required"
:
[
"typeName"
]
,
"additionalProperties"
:
false
}
,
"AIGD.PathPatch"
:
{
"type"
:
"object"
,
"properties"
:
{
"Path"
:
{
"type"
:
"string"
,
"description"
:
"Slash-delimited path to the target field/element/entry. Plain segment navigates a field or property (e.g. 'admin' or 'admin/name'). Use '[i]' for array/list index (e.g. 'planets/[0]/orbitRadius'). Use '[key]' for dictionary entry (e.g. 'config/[timeout]'). A leading '#/' is stripped automatically. Required."
"The new value to write at the path. Use the standard SerializedMember envelope: 'typeName' + 'value' for primitives, or nested 'fields'/'props' for complex types. Required — omitting it overwrites the target with a default empty SerializedMember."
}
}
}
,
"System.Collections.Generic.List(AIGD.PathPatch)"
:
{
"type"
:
"array"
,
"items"
:
{
"$ref"
:
"#/$defs/AIGD.PathPatch"
}
}
}
,
"required"
:
[
"gameObjectRef"
,
"componentRef"
]
}
}
,
"instanceID"
:
{
"type"
:
"integer"
,
"description"
:
"instanceID of the UnityEngine.Object. If this is '0', then it will be used as 'null'."
}
}
,
"required"
:
[
"index"
,
"instanceID"
]
,
"description"
:
"Component reference. Used to find a Component at GameObject."
}
,
"AIGD.ComponentDataShallow"
:
{
"type"
:
"object"
,
"properties"
:
{
"instanceID"
:
{
"type"
:
"integer"
}
,
"typeName"
:
{
"type"
:
"string"
}
,
"isEnabled"
:
{
"type"
:
"string"
,
"enum"
:
[
"False"
,
"True"
,
"NA"
]
}
}
,
"required"
:
[
"instanceID"
,
"isEnabled"
]
}
,
"System.String-1"
:
{
"type"
:
"array"
,
"items"
:
{
"type"
:
"string"
}
}
,
"AIGD.ModifyComponentResponse"
:
{
"type"
:
"object"
,
"properties"
:
{
"Success"
:
{
"type"
:
"boolean"
,
"description"
:
"Whether the modification was successful."
}
,
"Reference"
:
{
"$ref"
:
"#/$defs/AIGD.ComponentRef"
,
"description"
:
"Reference to the modified component."
}
,
"Index"
:
{
"type"
:
"integer"
,
"description"
:
"Index of the component in the GameObject's component list."
}
,
"Component"
:
{
"$ref"
:
"#/$defs/AIGD.ComponentDataShallow"
,
"description"
:
"Updated component information after modification."
}
,
"Logs"
:
{
"$ref"
:
"#/$defs/System.String-1"
,
"description"
:
"Log of modifications made and any warnings/errors encountered."