Loading UI Canvases

Once a UI canvas is authored using UI Editor it can be loaded at runtime using one of the following methods.

  • Use a UI Canvas Asset Ref component. The UI Canvas Asset Ref component references a UI canvas asset and has an option to automatically load the UI canvas when the component’s entity activates.

  • Use the Load Canvas Script Canvas node. Load a UI canvas by pathname with the Load Canvas Script Canvas node . Add the node to a Script Canvas graph that is assigned to a Script Canvas component on an entity in the level.

  • Use the UI Canvas Manager EBus. The UI Canvas Manager EBus contains the methods for loading a canvas by pathname and unloading a canvas by entity Id. Use this EBus in a Lua script that is assigned to a Lua Script component on an entity in the level.

The following example shows how to use the UI Canvas Manager bus in a Lua script.

-- Load UI canvas
local canvasEntityId = UiCanvasManagerBus.Broadcast.LoadCanvas("UI/Canvases/MyCanvas.uicanvas")

-- Unload UI canvas
UiCanvasManagerBus.Broadcast.UnloadCanvas(canvasEntityId)

The following example shows how to use the UI Canvas Manager bus in C++.

// Load UI canvas
AZ::EntityId canvasEntityId;
UiCanvasManagerBus::BroadcastResult(canvasEntityId, &UiCanvasManagerInterface::LoadCanvas, "UI/Canvases/MyCanvas.uicanvas");

// Unload UI canvas
UiCanvasManagerBus::Broadcast(&UiCanvasManagerInterface::UnloadCanvas, canvasEntityId);