Game UI
Game-facing view/screen flow service: navigation stack semantics plus transition request/state orchestration.
Service id: GameUI
Adapter (typical): UnityGameUIAdapter (project-level)
State
In-memory runtime state includes:
- Base view id (
_baseViewId) - Current navigation view id + navigation history stack
- Transition runtime snapshot (
status, active/last request ids, pending count, in/out transition ids, last error)
How it looks in persistent.json
None by default.
GameUI runtime state is in-memory and event-driven, not a predefined persistent subtree.
Events
Event ids are defined in GnosisGameUIEvents.
| Event id | When |
|---|---|
FACT_GAME_UI_BASE_VIEW_CHANGED | Base/root game UI view id changes. |
FACT_GAME_UI_TRANSITION_REQUESTED | A transition request is queued. |
FACT_GAME_UI_TRANSITION_STARTED | Coordinator begins running the active transition request. |
FACT_GAME_UI_TRANSITION_MIDPOINT | Midpoint reached between IN and OUT phases. |
FACT_GAME_UI_TRANSITION_COMPLETED | Active transition request finishes successfully. |
FACT_GAME_UI_TRANSITION_CANCELLED | Active transition is cancelled. |
FACT_GAME_UI_TRANSITION_RESET | Transition runtime state is force-reset to idle. |
FACT_GAME_UI_TRANSITION_FAILED | Transition fails (request build/midpoint invocation/runtime failure). |
Functions
| Function | Parameters | Result |
|---|---|---|
GetBaseViewId | — | Active base view id string (or empty) |
PushView | viewId required, optional transition ids/timing/midpoint invocations | Queues push transition request |
PopView | Optional transition ids/timing/midpoint invocations | Queues pop transition request |
RequestTransition | Optional inTransitionId/outTransitionId/transitionId, phase flags, view context ids, timing overrides, midpoint action/invocations | Queues a coordinator transition request |
CancelTransition | Optional requestId | Cancels active transition (or scoped request) |
ResetTransition | — | Resets transition visuals/state to idle |
GetTransitionState | — | Runtime transition state snapshot object |
Usage example — PushView
GameUIService.Example1.cs
private GnosisFunctionResult PushWithTransition(string viewId, string inId, string outId)
{
if (Context?.Store == null || Context.CallService == null)
return GnosisFunctionResult.Fail("No context");
var payload = GnosisNode.CreateObject(Context.Store);
payload.Set("viewId", viewId);
payload.Set("inTransitionId", inId);
payload.Set("outTransitionId", outId);
return CallService("GameUI", "PushView", payload);
}Usage example — GetTransitionState
GameUIService.Example2.cs
private GnosisNode ReadTransitionState()
{
if (Context?.Store == null || Context.CallService == null)
return default;
var empty = GnosisNode.CreateObject(Context.Store);
var result = CallService("GameUI", "GetTransitionState", empty);
return result.Success && result.Data.IsValid ? result.Data : default;
}Gnosis UI Elements
GameUI also owns UI element composition through CreateElement / DescribeUIElement.
Statistics
None.
See also
Last updated on