
Game Ready Signal
Use the game-ready signal when your game needs time to initialise before it is ready to play.
The Problem
By default, the platform starts revealing your game as soon as its view is ready. If your game does heavy startup work (a large spritesheet, procedural generation, an engine runtime), players may see a half-loaded game before it is usable.
The Solution
Call window.minit.loadingDone() once your game has finished loading and is ready for the first player interaction.
// Example: call after all assets are loaded and the game is ready
async function init() {
await loadAssets();
buildLevel();
window.minit.loadingDone();
}
init();
How It Works
- You call the ready-signal function when initialisation is complete.
- The platform detects the call in your uploaded build and flags the game as using it.
- In the app, the platform holds its transition animation until it receives the signal.
- If the signal does not arrive within 5 seconds, the platform reveals the game anyway.
No Precise Readiness Point? Use MinitReady
If your game has no specific moment where you know it's ready, attach the MinitReady component (shipped with the SDK) to any GameObject instead of calling Minit.LoadingDone() yourself:
// No code needed; just add the component in the Inspector:
// Add Component > Minit Ready
MinitReady calls Minit.LoadingDone() automatically on the first Update() frame after the scene loads, then disables itself. If your game does have its own loading gate, call Minit.LoadingDone() directly from that point instead. The direct call is more precise.
When to Use It
Use the ready signal if your game, before it can be played:
- Loads assets asynchronously rather than having everything ready at start
- Generates content procedurally at startup
- Performs any async work (an
await, a timer, a background thread) before the first frame is interactive
If your game is ready to play as soon as it loads, you don't need it. It only affects games that opt in.
Placement
Call the ready signal as late as possible: just before the first frame where a player can interact.
// Good: called after everything is ready
async function setup() {
await loadSpritesheets();
await loadAudio();
initGameState();
window.minit.loadingDone(); // Ready now
startGameLoop();
}
// Bad: called before assets have loaded
window.minit.loadingDone();
loadSpritesheets(); // Still loading
Outside the Host
In the Unity Editor and in non-WebGL builds, Minit.LoadingDone() logs to the Console ([Minit] LoadingDone()) instead of talking to the host, so you can develop and iterate without a browser.
Note: the game-ready signal has no effect on the web preview in the Creator Console; it only affects the Minit Games app.
Deeper Dives
- Unity: the full Unity SDK setup walkthrough
- Reporting Results: call
Minit.ReportResult()when the game ends