Back to Skills

unity-editor-imgui-design

verified

Unity IMGUI (Immediate Mode GUI) for editor tools and custom inspectors. Use for EditorWindow, Custom Inspector, Property Drawer development. NOT for game UI - use unity-game-ugui-design or unity-game-ui-toolkit-design instead.

View on GitHub

Marketplace

unity-mcp-server

akiojin/unity-mcp-server

Plugin

unity-mcp-server

development

Repository

akiojin/unity-mcp-server
8stars

.claude-plugin/plugins/unity-mcp-server/skills/unity-editor-imgui-design/SKILL.md

Last Verified

January 21, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/akiojin/unity-mcp-server/blob/main/.claude-plugin/plugins/unity-mcp-server/skills/unity-editor-imgui-design/SKILL.md -a claude-code --skill unity-editor-imgui-design

Installation paths:

Claude
.claude/skills/unity-editor-imgui-design/
Powered by add-skill CLI

Instructions

# Unity Editor IMGUI Design Skill

> **WARNING**: IMGUI is for **Unity Editor extensions ONLY**.
> For game UI, use `unity-game-ugui-design` or `unity-game-ui-toolkit-design`.

## IMGUI vs Game UI

| Aspect | IMGUI (Editor) | uGUI / UI Toolkit (Game) |
|--------|----------------|--------------------------|
| Purpose | Editor tools, inspectors | In-game UI, HUD |
| Build inclusion | Editor only | Included in builds |
| Rendering | Immediate mode | Retained mode |
| Performance | OK for editor | Optimized for runtime |
| Styling | Limited (GUISkin) | Rich (USS, materials) |

---

## Quick Start

### Create EditorWindow

```javascript
// Create editor window script
mcp__unity-mcp-server__create_class({
  path: "Assets/Editor/MyToolWindow.cs",
  className: "MyToolWindow",
  namespace: "MyProject.Editor",
  baseType: "EditorWindow",
  usings: "UnityEditor"
})

// Add window content
mcp__unity-mcp-server__edit_structured({
  path: "Assets/Editor/MyToolWindow.cs",
  symbolName: "MyToolWindow",
  operation: "insert_after",
  newText: `
    [MenuItem("Tools/My Tool Window")]
    public static void ShowWindow()
    {
        GetWindow<MyToolWindow>("My Tool");
    }

    private void OnGUI()
    {
        GUILayout.Label("My Tool", EditorStyles.boldLabel);

        if (GUILayout.Button("Do Something"))
        {
            Debug.Log("Button clicked!");
        }
    }
`
})
```

### Create Custom Inspector

```javascript
// Create custom inspector script
mcp__unity-mcp-server__create_class({
  path: "Assets/Editor/MyComponentEditor.cs",
  className: "MyComponentEditor",
  namespace: "MyProject.Editor",
  baseType: "Editor",
  usings: "UnityEditor"
})

// Add CustomEditor attribute and OnInspectorGUI
mcp__unity-mcp-server__edit_structured({
  path: "Assets/Editor/MyComponentEditor.cs",
  symbolName: "MyComponentEditor",
  operation: "insert_before",
  newText: "[CustomEditor(typeof(MyComponent))]\n"
})

mcp__unity-mcp-server__edit_structured({
  path: "Assets/Editor/MyComponen

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
24489 chars