Example #1
0
    // 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);
                }
            }
        }
    }
Example #3
0
    // 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);
                }
            }
        }
    }
Example #4
0
    // 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);
                }
            }
        }
    }