Skip to Content

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 idWhen
FACT_GAME_UI_BASE_VIEW_CHANGEDBase/root game UI view id changes.
FACT_GAME_UI_TRANSITION_REQUESTEDA transition request is queued.
FACT_GAME_UI_TRANSITION_STARTEDCoordinator begins running the active transition request.
FACT_GAME_UI_TRANSITION_MIDPOINTMidpoint reached between IN and OUT phases.
FACT_GAME_UI_TRANSITION_COMPLETEDActive transition request finishes successfully.
FACT_GAME_UI_TRANSITION_CANCELLEDActive transition is cancelled.
FACT_GAME_UI_TRANSITION_RESETTransition runtime state is force-reset to idle.
FACT_GAME_UI_TRANSITION_FAILEDTransition fails (request build/midpoint invocation/runtime failure).

Functions

FunctionParametersResult
GetBaseViewIdActive base view id string (or empty)
PushViewviewId required, optional transition ids/timing/midpoint invocationsQueues push transition request
PopViewOptional transition ids/timing/midpoint invocationsQueues pop transition request
RequestTransitionOptional inTransitionId/outTransitionId/transitionId, phase flags, view context ids, timing overrides, midpoint action/invocationsQueues a coordinator transition request
CancelTransitionOptional requestIdCancels active transition (or scoped request)
ResetTransitionResets transition visuals/state to idle
GetTransitionStateRuntime 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