Multi-Scene Builds
One build can carry several scenarios, each reporting to its own app and program — no separate build per scenario.
The problem it solves
A single app has one runtime token. Without multi-scene support, each scenario would need its own build. The SDK lets one build hold many scenes, each routed to a different app.
How it works
- The manifest holds a list of app entries, one per scene (
apps[]). - You link each scene to its app in the Connection tab; the manifest accumulates an entry per scene.
- Each tracked scene has an
AruvrImpactManager. On scene load it activates that scene’s app.
When a scene loads, its manager calls AruvrTracker.Instance.ActivateApp(sceneName), which:
- finds the manifest entry for that scene by exact name (no guessing),
- flushes any statements still queued under the previous app, using the previous app’s token, so nothing cross-posts,
- switches the active token to the new scene’s app,
- starts a fresh launch id (each scene visit is a fresh attempt).
Opt-in and safety
- A scene present in the manifest and carrying an
AruvrImpactManageractivates its app and tracks. - A scene not in the manifest (a menu, a sample scene) activates nothing and tracks nothing, even if it contains decision-point components. Nothing is auto-detected.
- Identity is entered once and carries across all scenes, because the tracker is a persistent singleton.
Setting up a scene
For each scene you want tracked:
- In the scene — add an
AruvrImpactManager(Add Component → ARUVR → Impact Manager). Its inspector shows the app and program the scene resolves to, or a warning if it is not linked yet. - In the editor window — open the scene, go to the Connection tab, pick the Program and App, and press Link this scene’s app.
Repeat per scene. Build once; every mapped scene reports to its own app.
Renaming scenes
The manifest is keyed by scene name. If you rename a scene, re-link it in the editor so the key matches the new name. Until you do, the manager logs a warning and the scene does not track — it never mis-routes to another app.
Example: two scenarios in one build
| Scene | Program | App |
|---|---|---|
FireModule |
Fire Training | Server Room |
Warehouse_Confined_Space |
Confined Space | Confined Space |
Both scenes are in Build Settings, both have an AruvrImpactManager, and both are linked. The
single APK routes each scene’s decisions to its own program on the dashboard.
