Skip to main content

messagebox

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

Source facts

Repository
JasonXuDeveloper/JEngine
Last source activity
January 29, 2026 at 05:42
Detected SKILL.md language
English
Stars
2,243
Forks
349

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
messagebox
description
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
# 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 ```csharp 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 ```csharp 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 ```csharp bool saved = await MessageBox.Show( "Save Changes", "Keep your changes?", ok: "Save", no: "Discard" ); ``` ### Single Button (Notification) ```csharp // Pass null or empty string to hide cancel button await MessageBox.Show( "Success", "Operation completed!", ok: "OK", no: null ); ``` ### Clean Up Before Scene Change ```csharp 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
View on GitHub