示例#1
0
        void handleVRInput()
        {
            if (Time.time < _timeToActivateInput)
            {
                return;
            }

            VRControllerState_t leftControllerState  = VRManager.Instance.Player.LeftController.ControllerState;
            VRControllerState_t rightControllerState = VRManager.Instance.Player.RightController.ControllerState;

            Vector2 movmentVector = leftControllerState.GetJoystick();

            _owner.SetHorizontalMovement(movmentVector.x);
            _owner.SetVerticalMovement(movmentVector.y);

            bool joystickDown = (rightControllerState.ulButtonPressed & 4294967296) != 0;

            _owner.SetJumpKeyDown(joystickDown);

            if (!_damageKeyDown && rightControllerState.GetFrontTriggerValue() > 0.8f)
            {
                WeaponModel weaponModel = Accessor.GetPrivateField <FirstPersonMover, WeaponModel>("_currentWeaponModel", _owner);
                weaponModel.SetWeaponDamageActive(true);
                _damageKeyDown = true;
            }
            if (_damageKeyDown && rightControllerState.GetFrontTriggerValue() <= 0.8f)
            {
                WeaponModel weaponModel = Accessor.GetPrivateField <FirstPersonMover, WeaponModel>("_currentWeaponModel", _owner);
                weaponModel.SetWeaponDamageActive(false);
                _damageKeyDown = false;
            }

            if (_damageKeyDown)
            {
                OpenVR.System.TriggerHapticPulse(VRManager.Instance.Player.RightController.DeviceIndex, 0, 50000);
            }
        }