Skip to main content
Folder: Assets/_MolcaSDK/_VR/Scripts/Scenario/Tour/
TypeRole
TourAreaManagerLifecycle for a tour area (spots, materials, additive scene binding)
TourSpotControllerTeleport target + material presentation at a spot
TourProgressHelperStatic helpers: spot completion ratio and material counts from SessionInfo.tours

Code

Area registration — Spots call RegisterSpot / UnregisterSpot on TourAreaManager (see TourSpotController). spotId must match TourSpotData in tourData. Teleport / progress from gameplay:
using Molca;
using MolcaSDK.VR.Scenario.Session;
using MolcaSDK.VR.Scenario.Tour;

// Teleport (requires TeleportationAnchor + provider):
spot.TeleportHere();

// After user views content — post completion (org IDs must be populated from session/config):
await spot.CompleteMaterialAsync(materialLocalId);

// Read resumed progress from SessionInfo:
var session = RuntimeManager.GetSubsystem<ScenarioSessionManager>();
float p = TourProgressHelper.CalculateSpotProgress(session.SessionInfo, orgTourId);
var counts = TourProgressHelper.GetSpotMaterialCounts(session.SessionInfo, orgTourId);

Troubleshooting

  • RegisterSpot warning — no matching dataTourAreaManager.tourData must list a TourSpotData with the same id as spotId on TourSpotController.
  • CompleteMaterialAsync failsScenarioSessionManager active, non-zero orgId on spot/material, valid OrgScenarioId on TourScenarioData, and ScenarioManager instance for elapsed time (see source guards).
  • TourProgressHelper returns 0SessionInfo.tours empty or org_tour_id mismatch; refresh session after content load.

Unity Editor

Hierarchy: TourAreaManager with spots; or TourSpotController on POI object.

Unity Hierarchy showing tour area and spot objects