A canvas controller represents a single screen in your user interface. Canvas controllers can present and dismiss other canvas controllers, or screens, allowing you to easily build a user interface flow, presenting and dismissing screens as required.

A canvas controller automatically manages the presentation hierarchy, as well as loading and unloading itself as it is presented or dismissed. This allows you to build large, complex, or dynamic user interface flows, loading only the necessary screens on demand.

Canvas controllers are built with Unity's native UI Canvas, so any UI components that work with Unity's UI.Canvas are supported and creating the canvas controller's content will feel very familiar if you have worked with Unity UI before.

Canvas controllers can be used in Storyboards to visually create the user interface's flow.

Canvas controllers can be presented in world space by either setting a storyboard's StoryboardPresentationSpace to WorldSpace, or by passing a CanvasControllerWorldSpaceContainer to PresentInitialCanvasController. Canvas controllers presented from a world space canvas controller will also be presented in world space and contained within the presenter's container.

A canvas controller consists of two files - a scene file (.unity) and a script file (.cs). The scene file is where you can create your screen's contents. See the Canvas Controller Scenes section for more information. The script file is where you can do any scripting that your screen may require. See the Presentation & Dismissal and Life Cycle sections for more information.

The menu canvas controller from the included 'Floaty Cube' example.