Пример #1
0
        /// <summary>
        /// The GetControllerButtonState method is used to determine if the given controller button for the given press type on the given controller reference is currently taking place.
        /// </summary>
        /// <param name="buttonType">The type of button to check for the state of.</param>
        /// <param name="pressType">The button state to check for.</param>
        /// <param name="controllerReference">The reference to the controller to check the button state on.</param>
        /// <returns>Returns true if the given button is in the state of the given press type on the given controller reference.</returns>
        public override bool GetControllerButtonState(ButtonTypes buttonType, ButtonPressTypes pressType, VRTK_ControllerReference controllerReference)
        {
            uint index = VRTK_ControllerReference.GetRealIndex(controllerReference);

            switch (buttonType)
            {
            case ButtonTypes.Trigger:
            case ButtonTypes.TriggerHairline:
                return(GetControllerButtonState(index, "Trigger", pressType));

            case ButtonTypes.Grip:
            case ButtonTypes.GripHairline:
                return(GetControllerButtonState(index, "Grip", pressType));

            case ButtonTypes.Touchpad:
                return(GetControllerButtonState(index, "TouchpadPress", pressType));

            case ButtonTypes.ButtonOne:
                return(GetControllerButtonState(index, "ButtonOne", pressType));

            case ButtonTypes.ButtonTwo:
                return(GetControllerButtonState(index, "ButtonTwo", pressType));

            case ButtonTypes.StartMenu:
                return(GetControllerButtonState(index, "StartMenu", pressType));
            }
            return(false);
        }
Пример #2
0
        // Token: 0x0600181F RID: 6175 RVA: 0x00080644 File Offset: 0x0007E844
        protected virtual PlayerClimbEventArgs SetPlayerClimbEvent(VRTK_ControllerReference controllerReference, GameObject target)
        {
            PlayerClimbEventArgs result;

            result.controllerIndex     = VRTK_ControllerReference.GetRealIndex(controllerReference);
            result.controllerReference = controllerReference;
            result.target = target;
            return(result);
        }
Пример #3
0
        // Token: 0x060015E0 RID: 5600 RVA: 0x00077838 File Offset: 0x00075A38
        public virtual ObjectInteractEventArgs SetControllerInteractEvent(GameObject target)
        {
            ObjectInteractEventArgs result;

            result.controllerIndex     = VRTK_ControllerReference.GetRealIndex(this.controllerReference);
            result.controllerReference = this.controllerReference;
            result.target = target;
            return(result);
        }
Пример #4
0
        // Token: 0x06001A4C RID: 6732 RVA: 0x0008B518 File Offset: 0x00089718
        protected virtual HeadsetControllerAwareEventArgs SetHeadsetControllerAwareEvent(RaycastHit raycastHit, VRTK_ControllerReference controllerReference)
        {
            HeadsetControllerAwareEventArgs result;

            result.raycastHit          = raycastHit;
            result.controllerIndex     = VRTK_ControllerReference.GetRealIndex(controllerReference);
            result.controllerReference = controllerReference;
            return(result);
        }
Пример #5
0
        // Token: 0x06001331 RID: 4913 RVA: 0x0006B7D4 File Offset: 0x000699D4
        public override void HapticPulse(VRTK_ControllerReference controllerReference, float strength = 0.5f)
        {
            uint realIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);

            if (realIndex < 4294967295U)
            {
                float num = (float)this.maxHapticVibration * strength;
                SteamVR_Controller.Input((int)realIndex).TriggerHapticPulse((ushort)num, EVRButtonId.k_EButton_Axis0);
            }
        }
Пример #6
0
        // Token: 0x06001335 RID: 4917 RVA: 0x0006B848 File Offset: 0x00069A48
        public override Vector3 GetAngularVelocity(VRTK_ControllerReference controllerReference)
        {
            uint realIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);

            if (realIndex <= 0U || realIndex >= 4294967295U)
            {
                return(Vector3.zero);
            }
            return(SteamVR_Controller.Input((int)realIndex).angularVelocity);
        }
Пример #7
0
        protected virtual HeadsetControllerAwareEventArgs SetHeadsetControllerAwareEvent(RaycastHit raycastHit, VRTK_ControllerReference controllerReference)
        {
            HeadsetControllerAwareEventArgs e;

            e.raycastHit = raycastHit;
#pragma warning disable 0618
            e.controllerIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);
#pragma warning restore 0618
            e.controllerReference = controllerReference;
            return(e);
        }
Пример #8
0
        public virtual ObjectInteractEventArgs SetControllerInteractEvent(GameObject target)
        {
            ObjectInteractEventArgs e;

#pragma warning disable 0618
            e.controllerIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);
#pragma warning restore 0618
            e.controllerReference = controllerReference;
            e.target = target;
            return(e);
        }
Пример #9
0
        protected virtual PlayerClimbEventArgs SetPlayerClimbEvent(VRTK_ControllerReference controllerReference, GameObject target)
        {
            PlayerClimbEventArgs e;

#pragma warning disable 0618
            e.controllerIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);
#pragma warning restore 0618
            e.controllerReference = controllerReference;
            e.target = target;
            return(e);
        }
Пример #10
0
 protected virtual void LateUpdate()
 {
     if (controller != null)
     {
         pointerEventData.pointerId = (int)VRTK_ControllerReference.GetRealIndex(controllerReference);
     }
     if (controllerRenderModel == null && VRTK_ControllerReference.IsValid(controllerReference))
     {
         controllerRenderModel = VRTK_SDK_Bridge.GetControllerRenderModel(controllerReference);
     }
 }
Пример #11
0
        // Token: 0x06001AD5 RID: 6869 RVA: 0x0008D264 File Offset: 0x0008B464
        public virtual UIPointerEventArgs SetUIPointerEvent(RaycastResult currentRaycastResult, GameObject currentTarget, GameObject lastTarget = null)
        {
            UIPointerEventArgs result;

            result.controllerIndex     = VRTK_ControllerReference.GetRealIndex(this.controllerReference);
            result.controllerReference = this.controllerReference;
            result.isActive            = this.PointerActive();
            result.currentTarget       = currentTarget;
            result.previousTarget      = lastTarget;
            result.raycastResult       = currentRaycastResult;
            return(result);
        }
Пример #12
0
 protected virtual void LateUpdate()
 {
     if (controllerEvents != null)
     {
         pointerEventData.pointerId = (int)VRTK_ControllerReference.GetRealIndex(GetControllerReference());
         VRTK_SharedMethods.AddDictionaryValue(pointerLengths, pointerEventData.pointerId, maximumLength, true);
     }
     if (controllerRenderModel == null && VRTK_ControllerReference.IsValid(GetControllerReference()))
     {
         controllerRenderModel = VRTK_SDK_Bridge.GetControllerRenderModel(GetControllerReference());
     }
 }
Пример #13
0
        public virtual UIPointerEventArgs SetUIPointerEvent(RaycastResult currentRaycastResult, GameObject currentTarget, GameObject lastTarget = null)
        {
            UIPointerEventArgs e;

#pragma warning disable 0618
            e.controllerIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);
#pragma warning restore 0618
            e.controllerReference = controllerReference;
            e.isActive            = PointerActive();
            e.currentTarget       = currentTarget;
            e.previousTarget      = lastTarget;
            e.raycastResult       = currentRaycastResult;
            return(e);
        }
Пример #14
0
        /// <summary>
        /// The GetAngularVelocity method is used to determine the current angular velocity of the tracked object on the given controller reference.
        /// </summary>
        /// <param name="controllerReference">The reference to the tracked object to check for.</param>
        /// <returns>A Vector3 containing the current angular velocity of the tracked object.</returns>
        public override Vector3 GetAngularVelocity(VRTK_ControllerReference controllerReference)
        {
            SetupPlayer();
            uint index = VRTK_ControllerReference.GetRealIndex(controllerReference);

            switch (index)
            {
            case 1:
                return(gazeController != null ? gazeController.GetAngularVelocity() : Vector3.zero);

            default:
                return(Vector3.zero);
            }
        }
Пример #15
0
        // Token: 0x06001338 RID: 4920 RVA: 0x0006B8CC File Offset: 0x00069ACC
        public override float GetButtonHairlineDelta(SDK_BaseController.ButtonTypes buttonType, VRTK_ControllerReference controllerReference)
        {
            uint realIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);

            if (realIndex >= 4294967295U)
            {
                return(0f);
            }
            SteamVR_Controller.Device device = SteamVR_Controller.Input((int)realIndex);
            if (buttonType != SDK_BaseController.ButtonTypes.Trigger && buttonType != SDK_BaseController.ButtonTypes.TriggerHairline)
            {
                return(0f);
            }
            return(device.hairTriggerDelta);
        }
Пример #16
0
        // Token: 0x06001918 RID: 6424 RVA: 0x00085DC0 File Offset: 0x00083FC0
        protected virtual DestinationMarkerEventArgs SetDestinationMarkerEvent(float distance, Transform target, RaycastHit raycastHit, Vector3 position, VRTK_ControllerReference controllerReference, bool forceDestinationPosition = false, Quaternion?rotation = null)
        {
            DestinationMarkerEventArgs result;

            result.controllerIndex     = VRTK_ControllerReference.GetRealIndex(controllerReference);
            result.controllerReference = controllerReference;
            result.distance            = distance;
            result.target                   = target;
            result.raycastHit               = raycastHit;
            result.destinationPosition      = position;
            result.destinationRotation      = rotation;
            result.enableTeleport           = this.enableTeleport;
            result.forceDestinationPosition = forceDestinationPosition;
            return(result);
        }
Пример #17
0
        /// <summary>
        /// The GetAngularVelocity method is used to determine the current angular velocity of the tracked object on the given controller reference.
        /// </summary>
        /// <param name="controllerReference">The reference to the tracked object to check for.</param>
        /// <returns>A Vector3 containing the current angular velocity of the tracked object.</returns>
        public override Vector3 GetAngularVelocity(VRTK_ControllerReference controllerReference)
        {
            uint index = VRTK_ControllerReference.GetRealIndex(controllerReference);

            switch (index)
            {
            case 1:
                return(rightController.GetAngularVelocity());

            case 2:
                return(leftController.GetAngularVelocity());

            default:
                return(Vector3.zero);
            }
        }
Пример #18
0
        /// <summary>
        /// The GetVelocity method is used to determine the current velocity of the tracked object on the given controller reference.
        /// </summary>
        /// <param name="controllerReference">The reference to the tracked object to check for.</param>
        /// <returns>A Vector3 containing the current velocity of the tracked object.</returns>
        public override Vector3 GetVelocity(VRTK_ControllerReference controllerReference)
        {
            SetupPlayer();
            uint index = VRTK_ControllerReference.GetRealIndex(controllerReference);

            switch (index)
            {
            case 1:
                return(rightController != null ? rightController.GetVelocity() : Vector3.zero);

            case 2:
                return(leftController != null ? leftController.GetVelocity() : Vector3.zero);

            default:
                return(Vector3.zero);
            }
        }
Пример #19
0
        protected virtual DestinationMarkerEventArgs SetDestinationMarkerEvent(float distance, Transform target, RaycastHit raycastHit, Vector3 position, VRTK_ControllerReference controllerReference, bool forceDestinationPosition = false, Quaternion?rotation = null)
        {
            DestinationMarkerEventArgs e;

#pragma warning disable 0618
            e.controllerIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);
#pragma warning restore 0618
            e.controllerReference = controllerReference;
            e.distance            = distance;
            e.target                   = target;
            e.raycastHit               = raycastHit;
            e.destinationPosition      = position;
            e.destinationRotation      = rotation;
            e.enableTeleport           = enableTeleport;
            e.forceDestinationPosition = forceDestinationPosition;
            return(e);
        }
Пример #20
0
        // Token: 0x06001339 RID: 4921 RVA: 0x0006B908 File Offset: 0x00069B08
        public override bool GetControllerButtonState(SDK_BaseController.ButtonTypes buttonType, SDK_BaseController.ButtonPressTypes pressType, VRTK_ControllerReference controllerReference)
        {
            uint realIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);

            if (realIndex >= 4294967295U)
            {
                return(false);
            }
            switch (buttonType)
            {
            case SDK_BaseController.ButtonTypes.ButtonOne:
                return(this.IsButtonPressed(realIndex, pressType, 128UL));

            case SDK_BaseController.ButtonTypes.ButtonTwo:
                return(this.IsButtonPressed(realIndex, pressType, 2UL));

            case SDK_BaseController.ButtonTypes.Grip:
                return(this.IsButtonPressed(realIndex, pressType, 4UL));

            case SDK_BaseController.ButtonTypes.StartMenu:
                return(this.IsButtonPressed(realIndex, pressType, 1UL));

            case SDK_BaseController.ButtonTypes.Trigger:
                return(this.IsButtonPressed(realIndex, pressType, 8589934592UL));

            case SDK_BaseController.ButtonTypes.TriggerHairline:
                if (pressType == SDK_BaseController.ButtonPressTypes.PressDown)
                {
                    return(SteamVR_Controller.Input((int)realIndex).GetHairTriggerDown());
                }
                if (pressType == SDK_BaseController.ButtonPressTypes.PressUp)
                {
                    return(SteamVR_Controller.Input((int)realIndex).GetHairTriggerUp());
                }
                break;

            case SDK_BaseController.ButtonTypes.Touchpad:
                return(this.IsButtonPressed(realIndex, pressType, 4294967296UL));
            }
            return(false);
        }
Пример #21
0
        // Token: 0x06001337 RID: 4919 RVA: 0x0006B878 File Offset: 0x00069A78
        public override Vector2 GetButtonAxis(SDK_BaseController.ButtonTypes buttonType, VRTK_ControllerReference controllerReference)
        {
            uint realIndex = VRTK_ControllerReference.GetRealIndex(controllerReference);

            if (realIndex >= 4294967295U)
            {
                return(Vector2.zero);
            }
            SteamVR_Controller.Device device = SteamVR_Controller.Input((int)realIndex);
            if (buttonType == SDK_BaseController.ButtonTypes.Grip)
            {
                return(device.GetAxis(EVRButtonId.k_EButton_Axis2));
            }
            if (buttonType == SDK_BaseController.ButtonTypes.Trigger)
            {
                return(device.GetAxis(EVRButtonId.k_EButton_Axis1));
            }
            if (buttonType == SDK_BaseController.ButtonTypes.Touchpad)
            {
                return(device.GetAxis(EVRButtonId.k_EButton_Axis0));
            }
            return(Vector2.zero);
        }