Help us improve
Share bugs, ideas, or general feedback.
From jengine
Implements async modal dialogs in Unity with UniTask for confirmations, prompts, alerts, and user input awaiting bool results.
npx claudepluginhub jasonxudeveloper/jengine --plugin jengineHow this skill is triggered — by the user, by Claude, or both
Slash command
/jengine:messageboxThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Built on UniTask for non-blocking async operations with automatic object pooling.
Unity 6 C# scripting guide. Use when writing MonoBehaviour scripts, handling lifecycle events (Awake, Start, Update, FixedUpdate), using coroutines or async/await (Awaitable), working with ScriptableObjects, events, delegates, or core APIs like Vector3, Quaternion, Time, Debug. Based on Unity 6.3 LTS documentation.
Provides Unity C# scripting patterns covering MonoBehaviour lifecycle, coroutines, async/await, physics APIs, raycasts, collisions, animations, NavMesh, pooling, singletons, ECS, Jobs, and Burst.
Creates WPF dialog windows including modal dialogs, MessageBox, custom settings dialogs, and common dialogs for confirmation prompts, settings windows, file/folder pickers.
Share bugs, ideas, or general feedback.
Built on UniTask for non-blocking async operations with automatic object pooling.
public static UniTask<bool> Show(
string title,
string content,
string ok = "OK",
string no = "Cancel"
)
Returns true for confirm, false for cancel.
MessageBox.CloseAll() - Dismiss all active dialogs (for scene transitions)MessageBox.Dispose() - Release all pooled instances (app shutdown)MessageBox.ActiveCount - Currently displayed dialogsMessageBox.PooledCount - Cached instances in poolbool confirmed = await MessageBox.Show(
"Delete Item",
"Are you sure you want to delete this item?",
ok: "Delete",
no: "Cancel"
);
if (confirmed)
{
DeleteItem();
}
bool saved = await MessageBox.Show(
"Save Changes",
"Keep your changes?",
ok: "Save",
no: "Discard"
);
// Pass null or empty string to hide cancel button
await MessageBox.Show(
"Success",
"Operation completed!",
ok: "OK",
no: null
);
MessageBox.CloseAll();
SceneManager.LoadScene("NextScene");