#Interface Assets & Views
Interface Director enforces a clean architectural separation between Interface Assets (definition and policy) and Interface View Prefabs (visual presentation and components).
#Interface Asset Anatomy
An InterfaceAsset is a ScriptableObject defining stable identity, lifecycle rules, and navigation policies:
| Setting | Options | Purpose |
|---|---|---|
| Layer | HUD, Menu, Overlay, Modal, System, Debug | Defines logical stack placement, UI Mode activation, and suspension rules. |
| Lifetime | Scene, Global | Controls whether views are destroyed during scene loads or persist globally in DontDestroyOnLoad. |
| Instance Policy | Single, Multiple, Bring Existing To Front, Restart Existing | Governs what happens when a Show request is issued for an already open interface. |
| Return Policy | Close, Consume, Pass Through, Custom | Controls how this interface responds to the global Return/Back navigation command. |
| Block Lower Interfaces | Boolean | Blocks mouse clicks, touches, and raycasts from reaching interfaces below. |
| Hide When Suspended | Boolean | Hides the view hierarchy when a higher interface pushes this view into the suspended state. |
| Retain Instance | Boolean | Keeps the instantiated View inactive in memory on close for instant zero-allocation reopening. |
| Local Priority | Integer | Fine-grained sorting tie-breaker within the same logical layer. |
ShowcaseOpen full size ↗
#View Prefab Structure
The View Prefab represents the physical UI GameObject instantiated into the scene:
[View Prefab Root] (InterfaceView, Canvas / UIDocument, CanvasGroup)
└── Content (Author all visual text, buttons, panels, and widgets here)
The Director nests the View Prefab under its authoritative runtime Surface roots (OverlaySurface, CameraSurface, or WorldSpaceSurface), ensuring clean hierarchy separation.
ShowcaseOpen full size ↗
#Built-in Presets
| Preset | Default Layer | Lifetime | Return Policy | Blocking | UI Mode |
|---|---|---|---|---|---|
| HUD | HUD | Scene | Consume | No | No |
| Menu | Menu | Scene | Close | Yes (when top) | Yes |
| Overlay | Overlay | Scene | Close | Configurable | No |
| Modal | Modal | Scene | Close | Always Yes | Yes |
| System | System | Global | Consume | Always Yes | Yes |
| Debug | Debug | Global | Pass Through | No | No |