Skip to content

Built-In Trackers

These are additional components to record common data - just attach them to the CognitiveVR_Manager GameObject. These scripts are intended for easy implementation and these try to make few assumptions about your project. You should review these scripts to simplify and optimize in ways specific to your project's needs.

Analytics Tracker Components

Arm Length

Collects distances from the HMD to the player's controller. The maximum is assumed to be roughly the player's arm length. This only starts tracking when the player has pressed the Steam Controller Trigger or any button on Oculus Touch.

Battery Level

Send the battery level of an Android device after initialization and on quit. This requires building the product to an Android device.

Boundary Event

Sends a Custom Event when SteamVR Chaperone or Oculus Guardian becomes visible and becomes hidden.


Sends a Custom Event when framerate falls below a threshold. This threshold is set in CognitiveVR_Preferences. Can send a basic comfort score (FPS + Average HMD rotation rate) on an interval.

Controller Collision Event

Sends Custom Events when either controller collides in the game world. Collision LayerMask can be set in the Tracker Options Window.

Controller Input Event

If you are using SteamVR, Controller Input Event assumes you are using a SteamVR_TrackedController component.

Sends a Custom Event when common controller inputs occur, specifically TriggerClicked, TriggerUnclicked, Gripped, Ungripped and PadClicked.

Sending Custom Events for very common events may not be helpful, depending on what you are trying to learn from your data. For example, it may be easier to send one Custom Event at the end of a level to see how many times a specific input occurred. This component could be more valuable if, for example, you are trying to determine if certain gestures are difficult for some players to perform.

HMD Collision Event

Sends Custom Events if the HMD collides with something in the game world. Collision LayerMask can be set in the Tracker Options Window.

HMD Height

Samples the height of a player's HMD. Average is assumed to be player's eye height. Requires Oculus, SteamVR or Fove

HMD Present Event

Sends Custom Events when a player removes or wears their HMD.

The SteamVR HMD proximity sensor seems to have a delay of 10 seconds when removing the HMD. This has been accounted for in the Custom Event, but this component may miss events when the player quickly removes and replaces their HMD.

Headphone State

Check if the participant has headphones connected. This currently only works with Oculus Utilities on Android

Occlusion Event

Sends Custom Events when a tracked device (likely a controller, but could also be headset or lighthouse) loses visibility (visible) or is disconnected/loses power (connected).

Recenter Event

Sends a Custom Event when the HMD recenters. This is usually caused by calling UnityEngine.VR.InputTracking.Recenter(). Requires Oculus Utilities.

Room Size

Include SteamVR Chaperone Room Size or Oculus Guardian Size in Device Info.

Screen Resolution

Include Screen Resolution in Device Info. Probably only useful for mobile.

Teleport Event

Sends a Custom Event when a player's HMD root transform changes positions. This is not triggered when the player walks while using roomscale. If the player moves without an immediate teleport, do not use this component!