Tracker Options Window¶
The Tracker Options Window can be opened from the cognitiveVR menu
If you do not have a CognitiveVR_Manager prefab in your scene, you will be prompted to add one.
- cognitiveVR Unity Package installed
- A CognitiveVR_Manager prefab in your scene
These scripts are intended for easy implementation and these try to make few assumptions about your project. You should review these scripts and simplify/optimize in ways specific to your project's needs. This page gives you a high level overview about these scripts.
The CognitiveVR_Manager prefab can be added to your project to connect to the cognitiveVR analytics server. CognitiveVR_Manager must be Initialized before you can send analytics data. By default, this happens on Start().
DeviceInfo is automatically collected. It includes:
- Application name, version and platform
- Operating System
- Graphics Card name, vendor and memory
- Processor type
- System memory
- Display model and family
This script also contains the logic for capturing the player's hmd position and world gaze point.
Analytics Tracker Components¶
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.
Send the battery level of an Android device after initialization and on quit. This requires building the product to an android device.
Sends a transaction when SteamVR Chaperone or Oculus Guardian becomes visible and becomes hidden.
Sends a transaction 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 transactions 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 transaction when common controller inputs occur, specifically TriggerClicked, TriggerUnclicked, Gripped, Ungripped and PadClicked.
Sending transactions 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 transaction 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 transactions if the HMD collides with something in the game world. Collision LayerMask can be set in the Tracker Options Window.
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 transactions 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 transaction, but this component may miss events when the player quickly removes and replaces their HMD.
Check if the user has headphones connected. This currently only works with Oculus Utilities on Android
Enable a console that can send user-created notes to SceneExplorer. This could be extended to send bug reports to Jira or other bug tracker software. Since this is using OnGUI and requires a keyboard for input, it is not recommended to be used outside of development!
Sends transactions when a tracked device (likely a controller, but could also be headset or lighthouse) loses visibility (visible) or is disconnected/loses power (connected).
Sends transaction when the HMD recenters. This is usually caused by calling UnityEngine.VR.InputTracking.Recenter(). Requires Oculus Utilities.
Include SteamVR Chaperone Room Size or Oculus Guardian Size in Device Info.
Include Screen Resolution in Device Info. Probably only useful for mobile.
Create a unique user from Steamworks.net plugin. This requires you to uncomment the example code in the script. The Cognitive3D SDK does not ship with this package; it is available here https://steamworks.github.io/
UserInfo is a unique identifier to track the player. It is optional, but by providing a value, you can slice your data and see how a user's experience changes over their course of using your product.
Sends a transaction 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!