Skip to content
cccskills
FreePublished on GitHub

screenshot-isolated

Capture a Unity GameObject, an object in a scene, as a PNG with adjustable camera views, backgrounds, and lighting. Isolate the target or include the scene, and combine four views into one image for visual review.

OriginalShow the original description

Render a target GameObject from a chosen camera angle with optional layer-based isolation, configurable background (solid/skybox/transparent), multi-light setup via JSON, and Composite (2x2 Front/Right/Back/Top) mode. Returns a PNG image. When isolated=true, inactive children may briefly fire OnEnable — see the body for side-effect notes.

Works withUnity
See how to install

Good for

  • Capture an object with a transparent background
  • Review an object from four directions
  • Compare appearance under different lighting
  • Capture an object within its existing scene

Files included (1)

  • SKILL.md7.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Screenshot / Isolated GameObject

Renders a screenshot of a target GameObject with configurable isolation, background, camera angle, and lighting. When isolated=true (default), only the target object is visible via layer-based culling and inactive children of the target are temporarily activated for the render (their OnEnable callbacks may fire — restored in finally, but side effects like audio/network/animation events are not undoable). When isolated=false, the existing scene state is rendered as-is without activating inactive objects. Supports custom multi-light setups via JSON. Returns a base64-encoded PNG.

Camera views

Front (-Z), Back (+Z), Left (-X), Right (+X), Top (+Y), Bottom (-Y). Composite produces a single 2x2 image (Front, Right, Back, Top) where each sub-view uses the requested resolution, so the final image is resolution*2 x resolution*2.

Background modes

  • SolidColor — flat color from backgroundColor (hex string).
  • Skybox — current scene skybox.
  • Transparent — alpha-zero (ARGB32 PNG; useful for compositing).

Lights

lights is an optional JSON array of IsolatedLightConfig objects (type, color, intensity, rotation, position, range, spotAngle, innerSpotAngle, shadows, shadowStrength, bounceIntensity, colorTemperature, cookieSize, cullingMask, renderMode). When null, a default 1.0-intensity white directional light at rotation (50, -30, 0) is used. Empty array [] explicitly disables extra lights.

Side-effect caveat

Isolation temporarily activates inactive child GameObjects so their renderers participate in the cull. Activation state is restored in finally, but OnEnable-triggered side effects (audio, networking, animation events) are not rewindable. Set isolated=false if your scene contains scripts that must not fire OnEnable during the capture.

How to Call

unity-mcp-cli run-tool screenshot-isolated --input '{
  "gameObjectRef": "string_value",
  "includeChildren": "string_value",
  "isolated": "string_value",
  "backgroundMode": "string_value",
  "backgroundColor": "string_value",
  "cameraView": "string_value",
  "fieldOfView": "string_value",
  "nearClipPlane": "string_value",
  "farClipPlane": "string_value",
  "padding": "string_value",
  "lights": "string_value",
  "resolution": "string_value"
}'

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

unity-mcp-cli run-tool screenshot-isolated --input-file args.json

Or pipe via stdin (recommended):

unity-mcp-cli run-tool screenshot-isolated --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

NameTypeRequiredDescription
gameObjectRefanyYesReference to the target GameObject (by instanceId, path, or name).
includeChildrenanyNoInclude child GameObjects in the render. Default: true.
isolatedanyNoWhen true, renders only the target object using layer-based culling. When false, renders the full scene from the computed camera position. Default: true.
backgroundModeanyNoBackground mode. Default: SolidColor.
backgroundColorstringNoHex background color (e.g. '#404040'). Only used when backgroundMode is SolidColor.
cameraViewanyNoCamera angle relative to the target object's bounding box. Default: Front.
fieldOfViewanyNoCamera vertical field of view in degrees. Default: 60.
nearClipPlaneanyNoCamera near clip plane distance. Default: 0.01.
farClipPlaneanyNoCamera far clip plane distance. Default: 1000.
paddinganyNoFraming multiplier around the object. 1.0 = tight fit, 1.5 = 50% extra space. Default: 1.2.
lightsstringNoJSON array of light configurations. Each object defines type, color, intensity, rotation, position, range, spotAngle, shadows, etc. When null, a default white directional light at rotation (50,-30,0) is used. Example: [{"type":"Directional","color":"#FFF4E5","intensity":1.2,"rotation":[45,-45,0]}]
resolutionanyNoOutput image resolution in pixels (width = height). Default: 512.

Input JSON Schema

{
  "type": "object",
  "properties": {
    "gameObjectRef": {
      "$ref": "#/$defs/AIGD.GameObjectRef"
    },
    "includeChildren": {
      "$ref": "#/$defs/System.Boolean"
    },
    "isolated": {
      "$ref": "#/$defs/System.Boolean"
    },
    "backgroundMode": {
      "$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Editor.API.Tool_Screenshot-BackgroundMode"
    },
    "backgroundColor": {
      "type": "string"
    },
    "cameraView": {
      "$ref": "#/$defs/com.IvanMurzak.Unity.MCP.Editor.API.Tool_Screenshot-CameraView"
    },
    "fieldOfView": {
      "$ref": "#/$defs/System.Single"
    },
    "nearClipPlane": {
      "$ref": "#/$defs/System.Single"
    },
    "farClipPlane": {
      "$ref": "#/$defs/System.Single"
    },
    "padding": {
      "$ref": "#/$defs/System.Single"
    },
    "lights": {
      "type": "string"
    },
    "resolution": {
      "$ref": "#/$defs/System.Int32"
    }
  },
  "$defs": {
    "UnityEngine.EntityId": {
      "type": "string",
      "pattern": "^[0-9]+$"
    },
    "System.Type": {
      "type": "string"
    },
    "AIGD.GameObjectRef": {
      "type": "object",
      "properties": {
        "instanceID": {
          "$ref": "#/$defs/UnityEngine.EntityId",
          "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."
    },
    "System.Boolean": {
      "type": "boolean"
    },
    "com.IvanMurzak.Unity.MCP.Editor.API.Tool_Screenshot-BackgroundMode": {
      "type": "string",
      "enum": [
        "SolidColor",
        "Skybox",
        "Transparent"
      ]
    },
    "com.IvanMurzak.Unity.MCP.Editor.API.Tool_Screenshot-CameraView": {
      "type": "string",
      "enum": [
        "Front",
        "Back",
        "Left",
        "Right",
        "Top",
        "Bottom",
        "Composite"
      ]
    },
    "System.Single": {
      "type": "number"
    },
    "System.Int32": {
      "type": "integer"
    }
  },
  "required": [
    "gameObjectRef"
  ]
}

Output

This tool does not return structured output.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

build-cli

FreeSummary

Build unity-mcp-cli from its TypeScript source and optionally make the command available across terminals with npm link. Covers dependency installation, compilation, version checks, and reporting errors when a step fails.

  • Build unity-mcp-cli from source for the first time
  • Rebuild the CLI after changing TypeScript files
  • Make the CLI command available across terminals
IvanMurzak/Unity-MCP4.5KUpdated Oct 20, 2026

Save changed scenes and assets, then quit a Unity Editor started by a CLI session. A matching session identifier is required, and editors opened manually are left running. Headless editors are supported.

  • Closing a Unity Editor after CLI work
  • Saving changes before ending a headless session
  • Closing only the editor owned by a CLI session
IvanMurzak/Unity-MCP4.5KUpdated Oct 20, 2026

Review unresolved GitHub pull request comments against the current code, apply minimal fixes for valid issues, and reply to review threads. Comments that need human judgment remain open, while fixed or unnecessary requests are resolved with explanations.

  • Addressing unresolved pull request reviews
  • Checking whether review comments still apply
  • Separating fixes from requests needing human review
IvanMurzak/Unity-MCP4.5KUpdated Oct 20, 2026

package-add

FreeSummary

Add packages to a Unity project from its package registry, a Git URL, or a local path. Choose a compatible version or specify one, and receive the installation result after any required reload.

  • Installing a Unity registry package
  • Adding a package at a specific version
  • Installing from a Git branch or tag
IvanMurzak/Unity-MCP4.5KUpdated Oct 20, 2026

package-list

FreeSummary

List packages installed in a Unity project with their names, versions, sources, and descriptions. Filter by source or keyword, or show only direct dependencies—the packages explicitly listed in the project manifest.

  • Checking installed package versions
  • Listing packages installed from Git
  • Reviewing only direct dependencies
IvanMurzak/Unity-MCP4.5KUpdated Oct 20, 2026

package-remove

FreeSummary

Remove an installed UPM package, a package managed by Unity, from a project. Checks that it exists, updates manifest.json, and delivers the result after any reload. Built-in packages and dependencies of other packages cannot be removed.

  • Remove an unused package from a Unity project
  • Check whether a package is installed before removal
  • Receive removal results after Unity finishes reloading
IvanMurzak/Unity-MCP4.5KUpdated Oct 20, 2026

See all skills by IvanMurzak

Report a problem with this skill