本文へ移動
cccskills
無料GitHub で公開

ui-imgui

Unity IMGUI (Immediate Mode GUI) expert for legacy editor tools using OnGUI/immediate mode. Generates and modifies IMGUI EditorWindows, custom Inspectors, PropertyDrawers, and scripts with IMGUI code (OnGUI, OnInspectorGUI). Use when maintaining existing IMGUI editor code or when user explicitly requests IMGUI/OnGUI.

日本語の概要は準備中です。原文の説明を表示しています。

Warlander/DeedPlanner-3スター 26(GitHub 26 + cccskills 0)

実行スコア 未検証

インストール方法を見る

含まれるファイル(3)

  • SKILL.md6.5 KB
  • references/gui-elements.md3.5 KB
  • references/templates.md2.6 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Before proceeding: If the user is asking about creating a new editor window, custom inspector, or PropertyDrawer without explicitly mentioning IMGUI/OnGUI, recommend using UI Toolkit (CreateGUI) instead, as it's the modern approach. Only proceed with IMGUI if:

  • User is modifying existing IMGUI code
  • User explicitly requests IMGUI/immediate mode
  • The project exclusively uses IMGUI for editor tools

When activated, read the reference files:

When to Use This Skill

IMPORTANT: This skill is for legacy IMGUI code only. Use this skill when:

  • User is maintaining/updating existing IMGUI editor code (files with OnGUI(), OnInspectorGUI())
  • User explicitly requests IMGUI/immediate mode GUI
  • Project exclusively uses IMGUI for all editor tools

Do NOT use this skill for:

  • New editor windows (use UI Toolkit with CreateGUI() instead)
  • New custom inspectors (use UI Toolkit instead)
  • Requests that don't explicitly mention IMGUI or OnGUI

Legacy IMGUI is used for:

  • Editor windows — EditorWindow classes with OnGUI()
  • Custom inspectors — Editor, PropertyDrawer classes with OnInspectorGUI()
  • Debug overlays — OnGUI() in MonoBehaviour (runtime)

IMGUI is not for runtime game UI — use UI Toolkit or uGUI instead.

Scope

Generate only what is requested (for legacy IMGUI code):

RequestOutputNote
Editor window (IMGUI/OnGUI)EditorWindow with OnGUI()Only if explicitly IMGUI
Custom inspector (IMGUI)Editor with OnInspectorGUI()Only if explicitly IMGUI
Property drawer (IMGUI)PropertyDrawer with OnGUI()Only if explicitly IMGUI
Debug overlayMonoBehaviour with OnGUI()Runtime debugging
Update existing IMGUI scriptModify existing OnGUI codeAlways appropriate

Clarify if ambiguous:

  • "inspector" → Custom Editor for a specific type, or PropertyDrawer? Also ask: Should this use UI Toolkit (modern) or IMGUI (legacy)?
  • "editor window" → First ask: Should this use UI Toolkit (modern/CreateGUI) or IMGUI (legacy/OnGUI)?
  • "tool window" → EditorWindow with what functionality? Which UI system?

Conventions

Follow project patterns first. Search existing editor scripts before applying defaults.

TypeConventionGoodBad
Script namesPascalCaseMyToolWindow.csmy-tool-window.cs
EditorWindow[Name]Window.csLevelEditorWindow.csLevelEditor.cs
Custom Editor[Type]Editor.csEnemyEditor.csEnemyInspector.cs
PropertyDrawer[Type]Drawer.csRangeDrawer.csRangePropertyDrawer.cs
LocationEditor folderAssets/Editor/Assets/Scripts/

Editor folder is required — Scripts using UnityEditor namespace must be in an Editor folder or they will fail to build.

Workflow

  1. Analyze — Determine script type needed (EditorWindow, Editor, PropertyDrawer, etc.)
  2. Search — Find existing editor scripts to match patterns
  3. Follow project patterns — Match folder structure and naming
  4. Create script — Use appropriate base class and attributes
  5. Implement OnGUI — Build the interface with layout groups

Script Structure

EditorWindow

[MenuItem attribute] → adds to menu
ShowWindow() static method → opens window
OnGUI() → draws interface
OnEnable/OnDisable → initialization/cleanup

Custom Editor

[CustomEditor attribute] → targets component type
OnInspectorGUI() → draws inspector
OnEnable() → cache SerializedProperties
serializedObject.Update/ApplyModifiedProperties → undo support

PropertyDrawer

[CustomPropertyDrawer attribute] → targets type or attribute
OnGUI(Rect, SerializedProperty, GUIContent) → draws property
GetPropertyHeight() → custom height if needed

Key Rules

  • Cache GUIStyle objects — never create new GUIStyle in OnGUI (causes memory allocation every frame)
  • Use SerializedProperty — for proper undo/redo support in inspectors
  • Call ApplyModifiedProperties() — after any serialized object changes
  • Use EditorGUILayout — for editor scripts (auto-layout)
  • Use GUILayout — for runtime OnGUI
  • Begin/End pairs — always match BeginHorizontal with EndHorizontal, etc.
  • Editor folder required — scripts fail to build if not in Editor folder

Layout Basics

Horizontal grouping:

EditorGUILayout.BeginHorizontal();
// elements appear side by side
EditorGUILayout.EndHorizontal();

Vertical grouping:

EditorGUILayout.BeginVertical("box");
// elements appear stacked, with box style
EditorGUILayout.EndVertical();

Scroll view:

scrollPos = EditorGUILayout.BeginScrollView(scrollPos);
// scrollable content
EditorGUILayout.EndScrollView();

Foldout section:

showSection = EditorGUILayout.Foldout(showSection, "Section Name");
if (showSection)
{
    EditorGUI.indentLevel++;
    // section content
    EditorGUI.indentLevel--;
}

Common Patterns

Button with action:

if (GUILayout.Button("Do Something"))
{
    // action here
}

Property field with label:

EditorGUILayout.PropertyField(myProperty, new GUIContent("Label"));

Object reference field:

myObject = (MyType)EditorGUILayout.ObjectField("Label", myObject, typeof(MyType), true);

Disabled group:

EditorGUI.BeginDisabledGroup(condition);
// disabled elements
EditorGUI.EndDisabledGroup();

Best Practices

  • Use SerializedObject and SerializedProperty for undo support
  • Cache property references in OnEnable()
  • Use EditorUtility.SetDirty() only for non-serialized changes
  • Use Undo.RecordObject() before modifying objects directly
  • Use EditorStyles for consistent appearance
  • Use GUILayout.FlexibleSpace() to push elements apart

See references/templates.md for complete script templates. See references/gui-elements.md for full element reference.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

Map and editing guide for Assets/Scenes/MainScene.unity (the main editor scene of DeedPlanner 3). Use whenever reading, querying, or modifying the main scene — finding a UI element, tab, panel, camera, or manager in the hierarchy, checking how a view is wired into VContainer DI, or planning scene edits. Contains the full structural map so you don't have to scan the 25k-line YAML.

日本語の概要は準備中です。原文の説明を表示しています。

Warlander/DeedPlanner-3262026年10月21日 更新

Generates custom Shader Graph nodes from HLSL code. Use when the user wants to create a new Shader Graph node or make existing HLSL code work as a reflected function node.

日本語の概要は準備中です。原文の説明を表示しています。

Warlander/DeedPlanner-3262026年10月21日 更新

Edits Unity sprite properties by generating C# editor scripts using ISpriteEditorDataProvider APIs. Handles sprite rectangles, borders, pivots, outlines, and slicing operations (automatic, grid, isometric). Use when working with sprite assets, sprite sheets, texture atlases, or sprite slicing.

日本語の概要は準備中です。原文の説明を表示しています。

Warlander/DeedPlanner-3262026年10月21日 更新

ui

無料

Unity UI expert for menus, HUDs, screens, panels, buttons, labels, and all visual interface elements. Handles questions about UI in scenes or prefabs (how many elements, what exists, structure analysis), styling changes (colors, borders, backgrounds, fonts, spacing, rounded corners), layout adjustments, and UI generation. Routes to UI Toolkit, uGUI, or IMGUI based on project context.

日本語の概要は準備中です。原文の説明を表示しています。

Warlander/DeedPlanner-3262026年10月21日 更新

ui-ugui

無料

Unity uGUI (Canvas-based) UI expert. Understands, edits, and generates Canvas hierarchies, RectTransforms, Layout Groups, and prefab UI. Use for requests involving Canvas, uGUI, RectTransform, or .prefab UI files.

日本語の概要は準備中です。原文の説明を表示しています。

Warlander/DeedPlanner-3262026年10月21日 更新

ui-uitk

無料

Unity UI Toolkit expert for Unity 6.0+. Understands, edits, and generates UXML and USS files with flex-based layouts. Use for requests involving .uxml, .uss, UI Toolkit, UIElements, UIDocument, UI runtime binding, Custom UI Elements, Manipulators or PanelSettings.

日本語の概要は準備中です。原文の説明を表示しています。

Warlander/DeedPlanner-3262026年10月21日 更新

Warlander のスキルをすべて見る

このスキルの問題を報告する