Skip to main content
Product: Molca VR SDK (Assets/_MolcaSDK/_VR/) on Molca Core. For cross-product Core placement, see Architecture. For content structure (modules → scenario → simulation vs tour), see VR content hierarchy.

Layers (VR training on Molca Core)

Dependency direction: your VR training content calls into the VR SDK; the VR SDK sits on Molca Core; both run on Unity + XR.

Glossary (VR training)

Scenario state (ScenarioManager)

ScenarioState: Inactive, Active, Paused, Completed, Terminated, TimedOut. FailScenario() sets Terminated. API comments note that success and failure can both end as a finished session from the backend’s perspective; pass/fail may depend on posted scores. Inspect CompleteScenario, FailScenario, and TimeoutScenario in Scenario/ScenarioManager.cs when customizing outcomes.

Typical VR app flow (molca-sdk-vr)

  1. PreloadVRPreloadCheck runs child components implementing IPreloadCheck (_MolcaSDK/Code/.../Preload/).
  2. AuthScenarioSessionManager.VisitorLoginAsync (6-digit OTP) or MemberLoginAsync(email, password). Avoid obsolete MemberLoginAsyncUsingClerk.
  3. HomeHomeUIManager + ScenarioDataConfig (and fetched org content when connected).
  4. ScenarioScenarioManager + mode driver; simulation uses activities/sequences; tour uses TourSubsystem.
  5. End — completion / timeout / fail UI + session status and scores via ScenarioNetworkConfig.

Scenario lifecycle states

ScenarioState on ScenarioManager (simplified — see source for guards): Pause UI: PauseScenario() / ResumeScenario() only show or hide the pause modal. CurrentState stays Active; sequences and timers keep running (see API comments in ScenarioManager.cs). The enum includes Paused, but that path is not used by the pause modal flow.

Connected session (high level)

VR entry-point cheat sheet