예제 #1
0
    public void setControllerStateChanged(string state)
    {
        PLOG.I("PvrLog CVControllerStateChanged" + state);

        int controller = Convert.ToInt16(state.Substring(0, 1));

        if (controller == 0)
        {
            controllerlink.controller0Connected = Convert.ToBoolean(Convert.ToInt16(state.Substring(2, 1)));
            if (!controllerlink.controller0Connected)
            {
                controllerlink.Controller0          = new ControllerHand();
                controllerlink.Controller0.Position = new Vector3(0, Pvr_UnitySDKSensor.Instance.HeadPose.Position.y, 0) + new Vector3(-0.1f, -0.3f, 0.3f);
            }
        }
        else
        {
            controllerlink.controller1Connected = Convert.ToBoolean(Convert.ToInt16(state.Substring(2, 1)));
            if (!controllerlink.controller1Connected)
            {
                controllerlink.Controller1          = new ControllerHand();
                controllerlink.Controller1.Position = new Vector3(0, Pvr_UnitySDKSensor.Instance.HeadPose.Position.y, 0) + new Vector3(0.1f, -0.3f, 0.3f);
            }
        }
        if (Convert.ToBoolean(Convert.ToInt16(state.Substring(2, 1))))
        {
            controllerlink.controllerType = controllerlink.GetControllerType();
            controllerlink.ResetController(controller);
        }
        controllerlink.handness   = (Pvr_Controller.UserHandNess)controllerlink.getHandness();
        controllerlink.mainHandID = controllerlink.GetMainControllerIndex();
        if (SetControllerStateChangedEvent != null)
        {
            SetControllerStateChangedEvent(state);
        }
        if (PvrControllerStateChangedEvent != null)
        {
            PvrControllerStateChangedEvent(state);
        }
    }