private void OnApplicationPause(bool pause)
    {
        var headdof = Pvr_UnitySDKManager.SDK.HmdOnlyrot ? 0 : 1;
        var handdof = Pvr_UnitySDKManager.SDK.ControllerOnlyrot ? 0 : 1;

        if (pause)
        {
            if (controllerlink.neoserviceStarted)
            {
                controllerlink.SetGameObjectToJar("");
                controllerlink.StopControllerThread(headdof, handdof);
            }
            if (controllerlink.goblinserviceStarted)
            {
                controllerlink.StopLark2Receiver();
            }
        }
        else
        {
            controllerlink.Controller0 = new ControllerHand();
            controllerlink.Controller1 = new ControllerHand();
            if (controllerlink.neoserviceStarted)
            {
                controllerlink.SetGameObjectToJar(this.gameObject.name);
                controllerlink.SetUnityVersionToJar(Pvr_UnitySDKAPI.System.UnitySDKVersion);
                controllerlink.StartControllerThread(headdof, handdof);
            }
            if (controllerlink.goblinserviceStarted)
            {
                controllerlink.StartLark2Receiver();
                controllerlink.controller0Connected = GetControllerConnectionState(0) == 1;
                controllerlink.controllerType       = controllerlink.GetDeviceType();
                controllerlink.handness             = (Pvr_Controller.UserHandNess)controllerlink.getHandness();

                if (PvrServiceStartSuccessEvent != null)
                {
                    PvrServiceStartSuccessEvent();
                }
            }
        }
    }
示例#2
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.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.1f, -0.3f, 0.3f);
            }
        }
        if (Convert.ToBoolean(Convert.ToInt16(state.Substring(2, 1))))
        {
            controllerlink.controllerType = controllerlink.GetDeviceType();
            controllerlink.ResetController(controller);
        }
        if (SetControllerStateChangedEvent != null)
        {
            SetControllerStateChangedEvent(state);
        }
        if (PvrControllerStateChangedEvent != null)
        {
            PvrControllerStateChangedEvent(state);
        }

        controllerlink.mainHandID = Controller.UPvr_GetMainHandNess();
    }