Configure a commissioning scene with the prefabs and hierarchy required for selection, cameras, panels, and UI tools.
flowchart TB
subgraph scene [Scene root]
MainCam["Main Camera.prefab"]
Interactions["Interactions.prefab"]
VC1["Virtual Camera.prefab x N"]
end
Interactions --> AppUI
Interactions --> SelectionManager
Interactions --> CamerasManager
Interactions --> PanelsManager
Interactions --> UndoManager
Interactions --> TransformHandles
Interactions --> SettingsManager
VC1 --> CameraController
VC1 --> CinemachineCamera
Drag Runtime/Prefabs/Main Camera.prefab into the scene.
- Tagged
MainCamera(used bySelectionManagerfor raycasts). - URP Universal Additional Camera Data with Post Processing enabled (required for outlines).
- Audio Listener included.
Drag Runtime/Prefabs/Interactions.prefab into the scene.
This single prefab bootstraps most runtime systems:
| Child (prefab name) | Component / role |
|---|---|
| AppUI | UI shell, toolbar tools, popups |
| SelectionManager | Object selection and pointer events |
| CamerasManager | Active virtual camera switching |
| PanelsManager | PanelManager + default PanelHandler list |
| SettingsManager | Mouse sensitivity, visual config, auto-load layout |
| TransformHandles | Move/rotate gizmos (RuntimeTransformHandle) |
| UndoManager | RuntimeUndoSystem |
For each camera view (e.g. overview, detail, side):
- Duplicate
Runtime/Prefabs/Virtual Camera.prefab. - Position the root in the scene.
- Each instance contains:
CameraControlleron the rootPivotchild (orbit target)Cinemachine Camerachild (Cinemachine 3)
CamerasManager discovers all CameraController instances on enable and activates one at a time. See Subsystems/Cameras-Manager.md.
Ensure the scene has a Unity Event System (required for AppUI to detect pointer-over-UI and for interaction pointer events).
Add a global or local Volume with the Outline override. Use Runtime/Settings/OC Volume.asset as a reference profile.
On each interactable device or assembly:
- Add
Interactionfrom theOCassembly (OC.Interactions). - Optional package components:
Outline— hover/selection highlight (auto-added in Editor whenInteractionis added)RuntimeInspector— editable transform fields in UIColliderMaterial— debug collider visualization (Collider View tool)Label— world-space name label (Label tool)HideGroup— group hide/transparent (Hide tool)
Ensure colliders are on a layer included in SelectionManager’s layer mask (default: layer 10, mask value 1024).
- Confirm OC Input Actions are assigned on
Interactionsand camera prefabs. - Enable the Interaction Tool in the toolbar at runtime to allow selection (see AppUI/Toolbar-Tools.md).
- URP active, outline renderer feature and volume configured (Setup)
-
Main Camerain scene with post-processing -
Interactionsprefab in scene - One or more
Virtual Cameraprefab instances - Event System present
-
Interaction(+ colliders) on commissioning objects, correct physics layer - Rendering layers
Outline_1–Outline_4defined
| Scene | Path |
|---|---|
| Basic devices demo | Samples/Basic Demo/0.1 Devices.unity |
| Components UI test | Tests/Scenes/0.1 Components UI.unity |
| Panels test | Tests/Scenes/0.2 Components UI - Panels.unity |
Note:
package.jsonlists sample pathsSamples~/DemoandSamples~/Environmentthat are not present in this repository. Use Basic Demo and Tests/Scenes instead.
| Symptom | Likely cause |
|---|---|
| Cannot select objects | Interaction Tool off (SelectionManager.Enable == false); wrong layer mask; no collider on object |
| No outline on hover/select | Missing Outline component; rendering layers not named Outline_1/Outline_2; post-processing disabled on camera |
| Camera does not move | Wrong camera active; pointer over UI; AppUI.IsPointerValidForAction is false |
| No component panel on select | No matching PanelHandler for the selected component type; PanelManager not in scene |
| Toolbar tools do nothing | Missing singleton (LabelManager, ColliderViewSystem) in scene; broken UnityEvent wiring on AppUI prefab |