GS_UI
Categories:
GS_UI is the complete user interface framework for GS_Play, built on top of O3DE’s LyShine rendering layer. It provides a singleton manager for canvas lifecycle and focus, a single-tier page navigation architecture, motion-based button animations, a LyShine-specific track animation system authored as data assets, and input interception utilities for pause menus and stage transitions.
For architecture details, component properties, and extending the system in C++, see the GS_UI API.
Quick Navigation
| I want to… | Feature | API |
|---|---|---|
| Load and unload UI canvases, manage focus stack, or set startup focus | UI Manager | API |
| Navigate between pages, handle back navigation, or cross canvas boundaries | Page Navigation | API |
| Add button animations or intercept input for UI canvases | UI Interaction | API |
| Animate UI elements with position, scale, rotation, alpha, and color tracks | UI Animation | API |
| Add a load screen or pause menu | Widgets | API |
Installation
GS_UI requires GS_Core and LyShine. Add both gems to your project before placing UI components.
For a full guided walkthrough, follow the Simple Project Setup guide.
Quick Installation Summary
- Enable the GS_UI gem in your project configuration.
- Create a UI Manager prefab and add it to the Game Manager’s Managers list.
- Create LyShine UI canvases with GS_UIPageComponent on root elements.
- Create
.uiamanimation assets for page transitions and button effects.
UI Manager
The UI Manager is the singleton that owns canvas lifecycle for the entire game session. It loads and unloads canvases by name, maintains a global focus stack, and handles startup focus deterministically. All canvas operations go through the Manager so that cross-canvas navigation and focus transitions remain coordinated.
Page Navigation
Page Navigation is the single-tier architecture that structures all navigable screens. Canvases contain root pages that can parent nested child pages recursively. Navigation is driven through the Page component: NavigateTo, NavigateBack, ChangePage, and ChangeUI handle all routing. Pages play UiAnimationMotion assets on show and hide for data-driven transitions.
UI Interaction
Enhanced button animations and input interception. GS_ButtonComponent extends LyShine interactables with UiAnimationMotion-based hover and select animations. GS_UIInputInterceptorComponent captures input events while a canvas is focused, preventing them from reaching gameplay. Both systems work together on interactive canvases.
UI Animation
UI Animation extends GS_Motion with eight LyShine-specific tracks: position, scale, rotation, element alpha, image alpha, image color, text color, and text size. Tracks are authored together in .uiam assets and played in parallel at runtime. Page components embed motion instances for show/hide transitions, and a standalone component makes animations available on any UI entity.
Widgets
Standalone UI components for game-event-driven scenarios outside the page navigation model. Load screens display automatically during stage transitions. Pause menus overlay gameplay and suppress gameplay input while active.
See Also
For the full API, component properties, and C++ extension guide:
For step-by-step project setup:
Get GS_UI
GS_UI — Explore this gem on the product page and add it to your project.