Skip to content

GEM_ExperienceManager

← Back to Runtime | Home

Namespace: wevr.GEM.Runtime

Type: Class

Inherits: NetworkBehaviour

Description

This script handles the GEM experience and should be placed within the main scene. It handles the flow of users through the experience, and does the flow-communcation with GEM.

Nested Types

  • EmergencyData
  • GhostData
  • GEMZoneDefinition
  • PlayerPositions

Properties

ActiveGhosts

Dictionary< int, GhostData > ActiveGhosts { get; set; }

ActiveSection

int ActiveSection { get; set; }

EmergencyState

EmergencyData EmergencyState { get; set; }

GroupSize

uint GroupSize { get; set; }

HasExperienceEnded

bool HasExperienceEnded { get; set; }

Initialized

bool Initialized { get; set; }

Instance

static GEM_ExperienceManager Instance { get; set; }

NextZoneOpened

bool NextZoneOpened { get; set; }

OffboardBounds

GEMBounds OffboardBounds { get; set; }

OnboardBounds

GEMBounds OnboardBounds { get; set; }

PlayersInNextZone

ulong[] PlayersInNextZone { get; set; }

Sections

GEMZoneDefinition[] Sections { get; set; }

Array of Section Definitions.

StageOffset

Vector2 StageOffset { get; set; }

StageZoneBounds

Bounds[] StageZoneBounds { get; set; }

StageZoneSequence

GEMPluginSettings.GEMZoneSpecification[] StageZoneSequence { get; set; }

TutorialState

TutorialStateEnum TutorialState { get; set; }

ViolationFrequencyHz

int ViolationFrequencyHz { get; set; }

ZoneTransitionStarted

bool ZoneTransitionStarted { get; set; }

Events

OnExperienceEnded

event Action< ExperienceEndState > OnExperienceEnded

OnReceiveEmergency

event Action< EmergencyData > OnReceiveEmergency

OnZoneOpened

event ZoneOpenedDelegate OnZoneOpened

OnZoneStarted

event ZoneStartedDelegate OnZoneStarted

Methods

ContinueToNextStageZone

void ContinueToNextStageZone()

Starts the next stage zone. This is to be triggered when the transition is completed.

DebugEnforceNextZoneBlocked_ServerRPC

void DebugEnforceNextZoneBlocked_ServerRPC(bool isBlocked)

GetActiveTrackingOrigin

GEM_TrackingOrigin GetActiveTrackingOrigin()

GetBoundsState

BoundsState GetBoundsState(Vector3 playerWorldPosition)

GetTargetedGameZoneVolume

GEM_ZoneBoundaryVolume GetTargetedGameZoneVolume()

Returns the zoneboundaryvolume that the player should at, or if next zone is opened, the next zone's volume.

GetTrackingOrigin

GEM_TrackingOrigin GetTrackingOrigin(int gameZoneIndex)

OffloadUser_RPC

void OffloadUser_RPC(int gemUserId)

OnDestroy

override void OnDestroy()

OnNetworkDespawn

override void OnNetworkDespawn()

OnNetworkSpawn

override void OnNetworkSpawn()

OnZoneOpened_RPC

void OnZoneOpened_RPC(int stageZoneIndex, int sectionIndex, bool opened)

OnZoneStarted_RPC

void OnZoneStarted_RPC(int stageZoneIndex, int activeSection)

ReceivedEmergency

void ReceivedEmergency(bool enablePassthrough, string emergencyMessage)

SetSimulatedActiveGameZone

void SetSimulatedActiveGameZone(int zoneIndex)

Debug function to force set active game zone. Only useable in simulation mode.

SetTutorialComplete

void SetTutorialComplete()

SetZoneSequence

GEMPluginSettings.GEMZoneSpecification[] SetZoneSequence()

StartNextGameZone

void StartNextGameZone()

Starts the next gamezone. This is to be triggered to start the transition.

TryStartSocketListener

async Task< GEMSocketListenerRunnable > TryStartSocketListener()

Starts the socket listener so the game server can receive commands from GEM.

UpdatePlayerPosition

void UpdatePlayerPosition(int gemUserId, Vector3 playerWorldPos)

ZoneOpenedDelegate

delegate void ZoneOpenedDelegate(int ZoneIndex, int SectionIndex, bool IsFree)

ZoneStartedDelegate

delegate void ZoneStartedDelegate(int ZoneIndex, int SectionIndex)

Fields

DataWasChanged

static Action DataWasChanged

OffboardZone

GEM_ZoneBoundaryVolume OffboardZone

StartupZone

GEMZoneDefinition StartupZone

Enums

TutorialStateEnum