// Handles WebVR data from browser public void OnWebVRData(string jsonString) { WebVRData webVRData = WebVRData.CreateFromJSON(jsonString); if (webVRData.sitStand.Length > 0) { sitStand = numbersToMatrix(webVRData.sitStand); } if (OnHeadsetUpdate != null) { OnHeadsetUpdate( numbersToMatrix(webVRData.leftProjectionMatrix), numbersToMatrix(webVRData.leftViewMatrix), numbersToMatrix(webVRData.rightProjectionMatrix), numbersToMatrix(webVRData.rightViewMatrix), sitStand); } if (webVRData.controllers.Length > 0) { foreach (WebVRControllerData controllerData in webVRData.controllers) { Vector3 position = new Vector3(controllerData.position [0], controllerData.position [1], controllerData.position [2]); Quaternion rotation = new Quaternion(controllerData.orientation [0], controllerData.orientation [1], controllerData.orientation [2], controllerData.orientation [3]); if (OnControllerUpdate != null) { OnControllerUpdate(controllerData.index, controllerData.hand, position, rotation, sitStand, controllerData.buttons); } } } }
// Handles WebVR data from browser public void OnWebVRData(string jsonString) { WebVRData webVRData = WebVRData.CreateFromJSON(jsonString); // Update controllers if (webVRData.controllers.Length > 0) { foreach (WebVRControllerData controllerData in webVRData.controllers) { if (OnControllerUpdate != null) { OnControllerUpdate(controllerData.id, controllerData.index, controllerData.hand, controllerData.hasOrientation, controllerData.hasPosition, new Quaternion(controllerData.orientation [0], controllerData.orientation [1], controllerData.orientation [2], controllerData.orientation [3]), new Vector3(controllerData.position [0], controllerData.position [1], controllerData.position [2]), new Vector3(controllerData.linearAcceleration [0], controllerData.linearAcceleration [1], controllerData.linearAcceleration [2]), new Vector3(controllerData.linearVelocity [0], controllerData.linearVelocity [1], controllerData.linearVelocity [2]), controllerData.buttons, controllerData.axes); } } } }
// Handles WebVR data from browser public void OnWebVRData(string jsonString) { WebVRData webVRData = WebVRData.CreateFromJSON(jsonString); if (webVRData.sitStand.Length > 0) { sitStand = numbersToMatrix(webVRData.sitStand); } // Reset RoomScale matrix if we are using Stationary tracking space. if (TrackingSpace == UnityEngine.XR.TrackingSpaceType.Stationary) { sitStand = Matrix4x4.identity; } // Update headset tracking if (OnHeadsetUpdate != null) { OnHeadsetUpdate( numbersToMatrix(webVRData.leftProjectionMatrix), numbersToMatrix(webVRData.leftViewMatrix), numbersToMatrix(webVRData.rightProjectionMatrix), numbersToMatrix(webVRData.rightViewMatrix), sitStand); } // Update controllers if (webVRData.controllers.Length > 0) { foreach (WebVRControllerData controllerData in webVRData.controllers) { Vector3 position = new Vector3(controllerData.position [0], controllerData.position [1], controllerData.position [2]); Quaternion rotation = new Quaternion(controllerData.orientation [0], controllerData.orientation [1], controllerData.orientation [2], controllerData.orientation [3]); if (OnControllerUpdate != null) { OnControllerUpdate(controllerData.index, controllerData.hand, position, rotation, sitStand, controllerData.buttons, controllerData.axes); } } } }
// Handles WebVR data from browser public void OnWebVRData(string jsonString) { WebVRData webVRData = WebVRData.CreateFromJSON(jsonString); // Reset RoomScale matrix if we are using Stationary tracking space. if (TrackingSpace == UnityEngine.XR.TrackingSpaceType.Stationary) { sitStand = Matrix4x4.identity; } // Update controllers if (webVRData.controllers.Length > 0) { foreach (WebVRControllerData controllerData in webVRData.controllers) { Vector3 position = new Vector3(controllerData.position [0], controllerData.position [1], controllerData.position [2]); Quaternion orientation = new Quaternion(controllerData.orientation [0], controllerData.orientation [1], controllerData.orientation [2], controllerData.orientation [3]); Vector3 linearAcceleration = new Vector3(controllerData.linearAcceleration [0], controllerData.linearAcceleration [1], controllerData.linearAcceleration [2]); Vector3 linearVelocity = new Vector3(controllerData.linearVelocity [0], controllerData.linearVelocity [1], controllerData.linearVelocity [2]); if (OnControllerUpdate != null) { OnControllerUpdate(controllerData.id, controllerData.index, controllerData.hand, controllerData.hasOrientation, controllerData.hasPosition, orientation, position, linearAcceleration, linearVelocity, sitStand, controllerData.buttons, controllerData.axes); } } } }