Assets/_MolcaSDK/_VR/Scripts/Scenario/Tour/TourSubsystem.csNamespace:
MolcaSDK.VR.Scenario.TourType: RuntimeSubsystem on RuntimeManager
Role
- Loads / unloads tour areas (often additive scenes)
- Teleports between spots
SharedStringhome scene for returning to lobby- Optional keep-loaded radius when leaving an area (reduces reload churn)
Runtime flow (simplified)
Code
Resolve from anywhere after init:homeScene (SharedString) names the scene EndTourAndGoHomeAsync loads. maxDistanceToKeepAreaLoaded keeps an unloaded area’s additive scene in memory if the player remains within range of that area’s spots. TeleportToSpot, SetInitialArea, LoadAreaSceneAdditivelyAsync, UnloadDistantInactiveAreaScenesAsync cover advanced flow; OnAreaChanged, OnSpotTeleported, OnError are UnityEvent hooks.
Troubleshooting
- Transition fails —
TourScenarioDatanull or Addressables / scene name mismatch; checkOnErrorand console for[TourSubsystem]messages. - Teleport does nothing —
TourSpotControllerneedsTeleportationAnchor; ensure XRI teleport provider is active. - Home scene wrong — Set
SharedStringon the subsystem sovaluematches a Build Settings scene name (or your loader contract). - Memory / load churn — Tune
maxDistanceToKeepAreaLoadedor callUnloadDistantInactiveAreaScenesAsyncafter teleports if you manage areas manually.
Related
- Tour area and spots
- Scenario mode drivers — tour driver
- VR player manager — ground position for distance checks
- Session authentication —
ScenarioSessionManagerfor tour posts
Unity Editor
RuntimeManager prefab → TourSubsystem with home SharedString and distance fields.
