It creates asynchronous MessageBox components in Unity that wait for user input without blocking the game thread.

Install

mkdir -p .claude/skills/messagebox && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2340" && unzip -o skill.zip -d .claude/skills/messagebox && rm skill.zip

Installs to .claude/skills/messagebox

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

MessageBox async modal dialogs for Unity with UniTask. Triggers on: confirmation dialog, modal popup, prompt, alert, user confirmation, yes/no dialog, OK/Cancel, async dialog, await user input, delete confirmation, save confirmation
232 charsno explicit “when” trigger
Beginner

Key capabilities

  • Display async confirmation dialogs
  • Create information popups
  • Manage modal lifecycle
  • Pool dialog instances
  • Close all active dialogs

How it works

It utilizes UniTask to await user input in a non-blocking manner and manages object pooling to handle dialog instances efficiently.

Inputs & outputs

You give it
Dialog title and content strings
You get back
Boolean result from user interaction

When to use messagebox

  • Display confirmation dialogs
  • Create async information popups
  • Manage modal lifecycle during scene transitions

About this skill

MessageBox - Async Modal Dialogs

Built on UniTask for non-blocking async operations with automatic object pooling.

When to Use

  • Confirmation dialogs (Yes/No, OK/Cancel)
  • Information prompts (OK only)
  • Awaiting user decisions in gameplay

API

Show Method

public static UniTask<bool> Show(
    string title,
    string content,
    string ok = "OK",
    string no = "Cancel"
)

Returns true for confirm, false for cancel.

Management

  • MessageBox.CloseAll() - Dismiss all active dialogs (for scene transitions)
  • MessageBox.Dispose() - Release all pooled instances (app shutdown)
  • MessageBox.ActiveCount - Currently displayed dialogs
  • MessageBox.PooledCount - Cached instances in pool

Patterns

Confirmation Dialog

bool confirmed = await MessageBox.Show(
    "Delete Item",
    "Are you sure you want to delete this item?",
    ok: "Delete",
    no: "Cancel"
);

if (confirmed)
{
    DeleteItem();
}

Custom Button Text

bool saved = await MessageBox.Show(
    "Save Changes",
    "Keep your changes?",
    ok: "Save",
    no: "Discard"
);

Single Button (Notification)

// Pass null or empty string to hide cancel button
await MessageBox.Show(
    "Success",
    "Operation completed!",
    ok: "OK",
    no: null
);

Clean Up Before Scene Change

MessageBox.CloseAll();
SceneManager.LoadScene("NextScene");

Common Mistakes

  • Forgetting to await (dialog shows but code continues immediately)
  • Not handling both true/false return values
  • Not calling CloseAll() before scene transitions

When not to use it

  • When not using UniTask
  • When blocking the game thread is required

Prerequisites

Unity environmentUniTask package

Limitations

  • Requires explicit CloseAll() call before scene transitions
  • Must be awaited to prevent code execution before user input

How it compares

It provides an asynchronous, non-blocking approach to modal dialogs compared to traditional synchronous Unity UI methods.

Compared to similar skills

messagebox side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
messagebox (this skill)26moNo flagsBeginner
unity-developer1424moNo flagsAdvanced
avalonia-viewmodels-zafiro06moNo flagsIntermediate
dotnet-blazor03moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry