Scene Management

In order for a Unity project to run with the MAGES SDK, it is essential to create inside the Unity scene a (first in order) gameobject for the project management where all components will be located.

Scene Management Object


AnalyticsExporterManager (Required):

Adds the Analytics Exporter.

PrefabSpawnManager (Required):

Adds singleton-script Prefab Spawn Manager. The developer can choose if needed to preload all assets by enabling the corresponding variable on this script.

Scene Manager (Required):

Adds the singleton-scripts Event Manager and Update Manager.

ToolManager (Required):

Adds singleton-script Tools Manager.

RigidBodyManager (Optional):

Adds Rigidbody Animation Controller script.

MAGESPlayer (Required):

Adds the similarly named script with the variables selected in Inspector as below.


Adds the manager responsible for generating the session analytics.


Adds the manager responsible for the generation and management of avatars.


Adds the manager responsible for initializing SteamVR.


In the Sample App provided, on this particular gameobject Keyboard Controller script is attached. It is there purely for convenience purposes. It contains all the keyboard inputs, except the camera translation buttons located inside CameraRingInputController.

MAGESDeviceController (Required)

Adds the Controller Load script as well as the MAGES Controller Class. In the second script place the two controllers found inside the Scene Camera.

  1. Desktop: (VR Camera/[CameraRig]/Controller (left) & Controller (right))

  2. Oculus Quest: (OVRPlayerController/OVRCameraRig/TrackingSpace/LeftHandAnchor & RightHandAnchor)

  3. Vive Focus Plus: (WaveVR/Generic_MC_L & Generic_MC_R)

Scene Management Object
AUDIOController (Optional)

Creates an Audio Source with the Spatial Blend value set to 0 and attach the Audio Controller script.

NetworkController (Required)

Adds the Network Controller Photon, Photon Network Metrics and Player Numbering scripts. Also, inside the Network controller four gameobjects must be created as children of this one containing the script Network Start Position.

Scene Management Object

Rest of Gameobjects

StoryBoard (Required)

Adds StoryBoard script.

UserPathTracer (Required)

Adds UserPathTracer script.

AlternativePathBucket (Required)

This is the responsible gameobject for all the alternative LSAs (Lessons Stages Actions). Attach the Alternative path and Alternative Path Importer scripts and add three empty gameobjects as its children.

Scene Management Object
DeletedBucket (Required)

Nothing needs to be attached. This is handled from the Alternative Path (careful, it must not be an Alternative path’s child!)

Scene Graph (Required)

Add SceneGraph singleton-script here. In this gameobject, when the projects start, all LSAs will be created as children of this particular gameobject.

VoiceActor (Optional)

Has the VoiceActor and VoiceActorImporter components that manage the VoiceActor audioclips.

AmbientSoundManager (Required)

A manager responsible for the ambient music during the login phase or gameplay.

InterfaceManagement (Required)

Manager responsible for spawning and destruction of UIs.