private void CognitiveVR_Manager_OnTick()
        {
            if (CognitiveVR_Manager.HMD != null)
            {
                periodicRenderer = CognitiveVR_Manager.HMD.GetComponent <PlayerTrackerHelper>();

                if (periodicRenderer == null)
                {
                    periodicRenderer         = CognitiveVR_Manager.HMD.gameObject.AddComponent <PlayerTrackerHelper>();
                    periodicRenderer.enabled = false;
                }
                cam = CognitiveVR_Manager.HMD.GetComponent <Camera>();
                cam.depthTextureMode = DepthTextureMode.Depth;
            }

            if (!headsetPresent || CognitiveVR_Manager.HMD == null)
            {
                return;
            }

            RenderTexture rt = null;

            if (CognitiveVR_Preferences.Instance.TrackGazePoint)
            {
                periodicRenderer.enabled = true;
                rt = periodicRenderer.DoRender(new RenderTexture(width, height, 0));
                periodicRenderer.enabled = false;
            }

            PlayerSnapshot snapshot = new PlayerSnapshot();

            snapshot.Properties.Add("position", cam.transform.position);
            snapshot.Properties.Add("gazeDirection", cam.transform.forward);
            snapshot.Properties.Add("nearDepth", cam.nearClipPlane);
            snapshot.Properties.Add("farDepth", cam.farClipPlane);
            snapshot.Properties.Add("time", Time.time);
            snapshot.Properties.Add("renderDepth", rt);

#if CVR_STEAMVR
            if (Valve.VR.OpenVR.Chaperone != null)
            {
                snapshot.Properties.Add("chaperoneVisible", Valve.VR.OpenVR.Chaperone.AreBoundsVisible());
            }
#endif
            playerSnapshots.Add(snapshot);
            if (playerSnapshots.Count >= CognitiveVR_Preferences.Instance.SnapshotThreshold)
            {
                SendData();
            }
        }
        /// <returns>{gaze point}</returns>
        public static string SetGazePont(PlayerSnapshot snap)
        {
            System.Text.StringBuilder builder = new System.Text.StringBuilder();
            builder.Append("{");

            builder.Append(SetObject("time", snap.timestamp));
            builder.Append(",");
            builder.Append(SetPos("p", (Vector3)snap.Properties["position"]));
            builder.Append(",");
            builder.Append(SetPos("g", (Vector3)snap.Properties["gazePoint"]));

            builder.Append("}");

            return(builder.ToString());
        }