Agent SkillsIvanMurzak/Unity-MCP › gameobject-component-get

gameobject-component-get

GitHub

获取Unity GameObject中特定组件的详细信息,包括类型、启用状态及序列化字段。支持通过路径或查询精准读取数据以节省Token,适用于组件数据检查与调试场景。

Unity-MCP-Plugin/.claude/skills/gameobject-component-get/SKILL.md IvanMurzak/Unity-MCP

Trigger Scenarios

需要查看Unity组件的具体属性值 调试游戏对象组件状态 在修改前检查组件序列化数据

Install

npx skills add IvanMurzak/Unity-MCP --skill gameobject-component-get -g -y
More Options

Non-standard path

npx skills add https://github.com/IvanMurzak/Unity-MCP/tree/main/Unity-MCP-Plugin/.claude/skills/gameobject-component-get -g -y

Use without installing

npx skills use IvanMurzak/Unity-MCP@gameobject-component-get

指定 Agent (Claude Code)

npx skills add IvanMurzak/Unity-MCP --skill gameobject-component-get -a claude-code -g -y

安装 repo 全部 skill

npx skills add IvanMurzak/Unity-MCP --all -g -y

预览 repo 内 skill

npx skills add IvanMurzak/Unity-MCP --list

SKILL.md

Frontmatter
{
    "name": "gameobject-component-get",
    "description": "Get detailed information about a specific Component on a GameObject — type, enabled state, and (optionally) serialized fields and properties. Supports token-saving path-scoped reads via `paths` or `viewQuery`. Use 'gameobject-find' to list components first."
}

GameObject / Component / Get

Get detailed information about a specific Component on a GameObject. Returns component type, enabled state, and optionally serialized fields and properties. Use this to inspect component data before modifying it. Use 'gameobject-find' tool to get the list of all components on the GameObject.

Inputs

  • gameObjectRef — the host GameObject.
  • componentRef — the specific component to inspect (matched by index or instance ID).
  • includeFields (default true) — populate the legacy Fields list.
  • includeProperties (default true) — populate the legacy Properties list.
  • deepSerialization (default false) — when populating legacy lists, recurse into nested members.

Path-scoped reads (token-saving)

Supply paths (a list of paths) to read only the listed fields/elements via Reflector.TryReadAt, or viewQuery (a ViewQuery) to navigate to a subtree and/or filter by name regex / max depth / type via Reflector.View. The result is returned in the View field of the response, and the legacy Fields/Properties lists are skipped. These two parameters are mutually exclusive — supply at most one.

Path syntax

fieldName, nested/field, arrayField/[i], dictField/[key]. Leading #/ is stripped.

How to Call

unity-mcp-cli run-tool gameobject-component-get --input '{
  "gameObjectRef": "string_value",
  "componentRef": "string_value",
  "includeFields": false,
  "includeProperties": false,
  "deepSerialization": false,
  "paths": "string_value",
  "viewQuery": "string_value"
}'

For complex input (multi-line strings, code), save the JSON to a file and use:

unity-mcp-cli run-tool gameobject-component-get --input-file args.json

Or pipe via stdin (recommended):

unity-mcp-cli run-tool gameobject-component-get --input-file - <<'EOF'
{"param": "value"}
EOF

Troubleshooting

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.
includeFields boolean No Include serialized fields of the component.
includeProperties boolean No Include serialized properties of the component.
deepSerialization boolean No Performs deep serialization including all nested objects. Otherwise, only serializes top-level members.
paths any No Optional. List of paths to read individually via Reflector.TryReadAt. When supplied, the legacy 'Fields'/'Properties' lists are skipped and the result is returned in 'View'. Path syntax: 'fieldName', 'nested/field', 'arrayField/[i]', 'dictField/[key]'. Mutually exclusive with 'viewQuery'.
viewQuery any No Optional. View-query filter routed through Reflector.View. When supplied, the legacy 'Fields'/'Properties' lists are skipped and the filtered subtree is returned in 'View'. Mutually exclusive with 'paths'.

Input JSON Schema

{
  "type": "object",
  "properties": {
    "gameObjectRef": {
      "$ref": "#/$defs/AIGD.GameObjectRef"
    },
    "componentRef": {
      "$ref": "#/$defs/AIGD.ComponentRef"
    },
    "includeFields": {
      "type": "boolean"
    },
    "includeProperties": {
      "type": "boolean"
    },
    "deepSerialization": {
      "type": "boolean"
    },
    "paths": {
      "$ref": "#/$defs/System.Collections.Generic.List(System.String)"
    },
    "viewQuery": {
      "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.ViewQuery"
    }
  },
  "$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."
    },
    "System.Collections.Generic.List(System.String)": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "com.IvanMurzak.ReflectorNet.Model.ViewQuery": {
      "type": "object",
      "properties": {
        "Path": {
          "type": "string",
          "description": "Navigate to this path first, then serialize only that subtree. Path segments are separated by '/'. Use '[i]' for array/list index (e.g. 'users/[2]/name') and '[key]' for dictionary entry (e.g. 'config/[timeout]'). A leading '#/' is stripped automatically. Examples: 'admin/name', 'users/[0]/email', 'config/[timeout]'. Leave null to start from the root object."
        },
        "NamePattern": {
          "type": "string",
          "description": "Case-insensitive .NET regex pattern matched against field and property names. Only branches containing at least one match are kept in the result tree. Examples: 'orbitRadius' (exact name), 'orbit.*' (prefix match), 'radius|speed' (either name). When nothing matches, the root envelope is returned with empty fields/props. Leave null to return all fields and properties without filtering."
        },
        "MaxDepth": {
          "type": "integer",
          "description": "Maximum nesting depth of the returned serialized tree. 0 = root type name and value only — no nested fields or properties. 1 = one level of fields/props visible, their children stripped. 2 = two levels visible, and so on. Leave null (default) for unlimited depth."
        },
        "TypeFilter": {
          "$ref": "#/$defs/System.Type",
          "description": "When set, prunes the result tree to members whose runtime type is assignable to this type. Non-matching branches are removed; the root envelope is always preserved. Examples: typeof(float) keeps only float fields, typeof(IEnumerable) keeps only collections. Leave null to include members of any type."
        }
      }
    }
  },
  "required": [
    "gameObjectRef",
    "componentRef"
  ]
}

Output

Output JSON Schema

{
  "type": "object",
  "properties": {
    "result": {
      "$ref": "#/$defs/AIGD.GetComponentResponse"
    }
  },
  "$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."
        },
        "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.Collections.Generic.List(com.IvanMurzak.ReflectorNet.Model.SerializedMember)": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember"
      }
    },
    "com.IvanMurzak.ReflectorNet.Model.SerializedMember": {
      "type": "object",
      "properties": {
        "typeName": {
          "type": "string",
          "description": "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."
        },
        "fields": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember",
            "description": "Nested field value."
          },
          "description": "Fields of the object, serialized as a list of 'SerializedMember'."
        },
        "props": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember",
            "description": "Nested property value."
          },
          "description": "Properties of the object, serialized as a list of 'SerializedMember'."
        }
      },
      "required": [
        "typeName"
      ],
      "additionalProperties": false
    },
    "com.IvanMurzak.ReflectorNet.Model.SerializedMemberList": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember"
      }
    },
    "AIGD.GetComponentResponse": {
      "type": "object",
      "properties": {
        "Reference": {
          "$ref": "#/$defs/AIGD.ComponentRef",
          "description": "Reference to the component for future operations."
        },
        "Index": {
          "type": "integer",
          "description": "Index of the component in the GameObject's component list."
        },
        "Component": {
          "$ref": "#/$defs/AIGD.ComponentDataShallow",
          "description": "Basic component information (type, enabled state)."
        },
        "Fields": {
          "$ref": "#/$defs/System.Collections.Generic.List(com.IvanMurzak.ReflectorNet.Model.SerializedMember)",
          "description": "Serialized fields of the component. Populated only on the legacy code path (no 'paths' / no 'viewQuery')."
        },
        "Properties": {
          "$ref": "#/$defs/System.Collections.Generic.List(com.IvanMurzak.ReflectorNet.Model.SerializedMember)",
          "description": "Serialized properties of the component. Populated only on the legacy code path (no 'paths' / no 'viewQuery')."
        },
        "View": {
          "$ref": "#/$defs/com.IvanMurzak.ReflectorNet.Model.SerializedMember",
          "description": "Path-scoped read or view-query result, populated when 'paths' or 'viewQuery' was supplied. Null otherwise."
        }
      },
      "required": [
        "Index"
      ]
    }
  },
  "required": [
    "result"
  ]
}

Version History

  • 0.86.1 Current 2026-07-25 08:51

Same Skill Collection

.claude/skills/build-cli/SKILL.md
.claude/skills/github-pr-review-fix/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-copy/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-create-folder/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-delete/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-find-built-in/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-find/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-get-data/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-material-create/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-modify/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-move/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-prefab-close/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-prefab-create/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-prefab-instantiate/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-prefab-open/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-prefab-save/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-refresh/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-shader-get-data/SKILL.md
Unity-MCP-Plugin/.claude/skills/assets-shader-list-all/SKILL.md
Unity-MCP-Plugin/.claude/skills/console-clear-logs/SKILL.md
Unity-MCP-Plugin/.claude/skills/console-get-logs/SKILL.md
Unity-MCP-Plugin/.claude/skills/editor-application-get-state/SKILL.md
Unity-MCP-Plugin/.claude/skills/editor-application-set-state/SKILL.md
Unity-MCP-Plugin/.claude/skills/editor-selection-get/SKILL.md
Unity-MCP-Plugin/.claude/skills/editor-selection-set/SKILL.md
Unity-MCP-Plugin/.claude/skills/gameobject-component-add/SKILL.md
Unity-MCP-Plugin/.claude/skills/gameobject-component-destroy/SKILL.md
Unity-MCP-Plugin/.claude/skills/gameobject-component-list-all/SKILL.md
Unity-MCP-Plugin/.claude/skills/gameobject-component-modify/SKILL.md
Unity-MCP-Plugin/.claude/skills/gameobject-create/SKILL.md
Unity-MCP-Plugin/.claude/skills/gameobject-destroy/SKILL.md
Unity-MCP-Plugin/.claude/skills/gameobject-duplicate/SKILL.md
Unity-MCP-Plugin/.claude/skills/gameobject-find/SKILL.md
Unity-MCP-Plugin/.claude/skills/gameobject-modify/SKILL.md
Unity-MCP-Plugin/.claude/skills/gameobject-set-parent/SKILL.md
Unity-MCP-Plugin/.claude/skills/object-get-data/SKILL.md
Unity-MCP-Plugin/.claude/skills/object-modify/SKILL.md
Unity-MCP-Plugin/.claude/skills/package-add/SKILL.md
Unity-MCP-Plugin/.claude/skills/package-list/SKILL.md
Unity-MCP-Plugin/.claude/skills/package-remove/SKILL.md
Unity-MCP-Plugin/.claude/skills/package-search/SKILL.md
Unity-MCP-Plugin/.claude/skills/ping/SKILL.md
Unity-MCP-Plugin/.claude/skills/profiler-capture-frame/SKILL.md
Unity-MCP-Plugin/.claude/skills/profiler-clear-data/SKILL.md
Unity-MCP-Plugin/.claude/skills/profiler-enable-module/SKILL.md
Unity-MCP-Plugin/.claude/skills/profiler-get-memory-stats/SKILL.md
Unity-MCP-Plugin/.claude/skills/profiler-get-rendering-stats/SKILL.md
Unity-MCP-Plugin/.claude/skills/profiler-get-script-stats/SKILL.md
Unity-MCP-Plugin/.claude/skills/profiler-get-status/SKILL.md

Metadata

Files
0
Version
0.88.0
Hash
72dfc358
Indexed
2026-07-25 08:51

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-21 05:16
浙ICP备14020137号-1 $mapa de visitantes$