Ejemplo n.º 1
0
        private void SetVelocity()
        {
            var controllerIndex = VRTK_DeviceFinder.GetControllerIndex(gameObject);

            controllerVelocity        = VRTK_SDK_Bridge.GetVelocityOnIndex(controllerIndex);
            controllerAngularVelocity = VRTK_SDK_Bridge.GetAngularVelocityOnIndex(controllerIndex);
        }
Ejemplo n.º 2
0
 protected virtual void LateUpdate()
 {
     if (controller != null)
     {
         pointerEventData.pointerId = (int)VRTK_DeviceFinder.GetControllerIndex(controller.gameObject);
     }
 }
Ejemplo n.º 3
0
 protected virtual void AttemptHapticPulse(float strength)
 {
     if (events)
     {
         VRTK_SharedMethods.TriggerHapticPulse(VRTK_DeviceFinder.GetControllerIndex(events.gameObject), strength);
     }
 }
Ejemplo n.º 4
0
        protected virtual void Update()
        {
            uint checkIndex = VRTK_DeviceFinder.GetControllerIndex(gameObject);

            if (checkIndex != index)
            {
                uint previousIndex = index;
                index = checkIndex;
                //If the controller model listeners have already been registered, then make sure to unsub and sub when index changes.
                if (controllerModelWaitSubscribed)
                {
                    ManageControllerModelListeners(false);
                    ManageControllerModelListeners(true);
                }
                OnControllerIndexChanged(SetEventPayload(previousIndex));
                SetControllerType();
            }

            VRTK_SDK_Bridge.ControllerProcessUpdate(VRTK_ControllerReference.GetControllerReference(index));

            if (aliasController != null && gameObject.activeInHierarchy && !aliasController.activeSelf)
            {
                aliasController.SetActive(true);
            }
        }
 public void Vibrate_pulse(float strength)
 {
     if (grabbingController != null && IsGrabbed())
     {
         VRTK_SharedMethods.TriggerHapticPulse(VRTK_DeviceFinder.GetControllerIndex(grabbingController), strength);
     }
 }
 protected override void AttemptHapticPulse(float strength)
 {
     if (interactingObjects.Count > 0)
     {
         VRTK_SharedMethods.TriggerHapticPulse(VRTK_DeviceFinder.GetControllerIndex(interactingObjects[0]), strength);
     }
 }
 private void DoGlanceExitController(object sender, HeadsetControllerAwareEventArgs e)
 {
     if (VRTK_DeviceFinder.GetControllerIndex(transform.parent.gameObject) == e.controllerIndex)
     {
         ToggleTips(false);
     }
 }
Ejemplo n.º 8
0
        public ObjectInteractEventArgs SetControllerInteractEvent(GameObject target)
        {
            ObjectInteractEventArgs e;

            e.controllerIndex = VRTK_DeviceFinder.GetControllerIndex(gameObject);
            e.target          = target;
            return(e);
        }
Ejemplo n.º 9
0
 public UIPointerEventArgs SetUIPointerEvent(GameObject currentTarget, GameObject lastTarget = null)
 {
     UIPointerEventArgs e;
     e.controllerIndex = VRTK_DeviceFinder.GetControllerIndex(controller.gameObject);
     e.currentTarget = currentTarget;
     e.previousTarget = lastTarget;
     return e;
 }
Ejemplo n.º 10
0
 /// <summary>
 /// The TriggerHapticPulse/1 method calls a single haptic pulse call on the controller for a single tick.
 /// </summary>
 /// <param name="strength">The intensity of the rumble of the controller motor. `0` to `1`.</param>
 public virtual void TriggerHapticPulse(float strength)
 {
     if (enabled)
     {
         CancelHapticPulse();
         var hapticPulseStrength = Mathf.Clamp(strength, 0f, 1f);
         VRTK_SDK_Bridge.HapticPulseOnIndex(VRTK_DeviceFinder.GetControllerIndex(gameObject), hapticPulseStrength);
     }
 }
Ejemplo n.º 11
0
        private void DoGlanceExitController(object sender, HeadsetControllerAwareEventArgs e)
        {
            var controllerIndex = VRTK_DeviceFinder.GetControllerIndex(controllerActions.gameObject);

            if (controllerIndex == e.controllerIndex)
            {
                ToggleTips(false);
            }
        }
Ejemplo n.º 12
0
 // Token: 0x0600174F RID: 5967 RVA: 0x0007CBB0 File Offset: 0x0007ADB0
 protected virtual void OnEnable()
 {
     this.aliasController = VRTK_DeviceFinder.GetScriptAliasController(base.gameObject);
     if (this.aliasController == null)
     {
         this.aliasController = base.gameObject;
     }
     this.index = VRTK_DeviceFinder.GetControllerIndex(base.gameObject);
     this.OnControllerEnabled(this.SetEventPayload(uint.MaxValue));
 }
Ejemplo n.º 13
0
        public virtual UIPointerEventArgs SetUIPointerEvent(GameObject currentTarget, GameObject lastTarget = null)
        {
            UIPointerEventArgs e;

            e.controllerIndex = VRTK_DeviceFinder.GetControllerIndex(controller.gameObject);
            e.isActive        = PointerActive();
            e.currentTarget   = currentTarget;
            e.previousTarget  = lastTarget;
            return(e);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// The TriggerHapticPulse/1 method calls a single haptic pulse call on the controller for a single tick.
        /// </summary>
        /// <param name="strength">The intensity of the rumble of the controller motor. `0` to `3999`.</param>
        public void TriggerHapticPulse(ushort strength)
        {
            if (!enabled)
            {
                return;
            }

            hapticPulseStrength = (strength <= maxHapticVibration ? strength : maxHapticVibration);
            VRTK_SDK_Bridge.HapticPulseOnIndex(VRTK_DeviceFinder.GetControllerIndex(gameObject), hapticPulseStrength);
        }
Ejemplo n.º 15
0
        public virtual UIPointerEventArgs SetUIPointerEvent(RaycastResult currentRaycastResult, GameObject currentTarget, GameObject lastTarget = null)
        {
            UIPointerEventArgs e;

            e.controllerIndex = (controller != null ? VRTK_DeviceFinder.GetControllerIndex(controller.gameObject) : uint.MaxValue);
            e.isActive        = PointerActive();
            e.currentTarget   = currentTarget;
            e.previousTarget  = lastTarget;
            e.raycastResult   = currentRaycastResult;
            return(e);
        }
Ejemplo n.º 16
0
 protected virtual void AttemptHaptics()
 {
     if (usingObject != null)
     {
         var doHaptics = usingObject.GetComponentInParent <VRTK_InteractHaptics>();
         if (doHaptics != null)
         {
             doHaptics.HapticsOnUse(VRTK_DeviceFinder.GetControllerIndex(interactTouch.gameObject));
         }
     }
 }
Ejemplo n.º 17
0
 protected virtual void AttemptHaptics(bool initialGrabAttempt)
 {
     if (grabbedObject && initialGrabAttempt)
     {
         var doHaptics = grabbedObject.GetComponentInParent <VRTK_InteractHaptics>();
         if (doHaptics)
         {
             doHaptics.HapticsOnGrab(VRTK_DeviceFinder.GetControllerIndex(interactTouch.gameObject));
         }
     }
 }
Ejemplo n.º 18
0
        protected virtual void OnEnable()
        {
            aliasController = VRTK_DeviceFinder.GetScriptAliasController(gameObject);
            if (aliasController == null)
            {
                aliasController = gameObject;
            }

            index = VRTK_DeviceFinder.GetControllerIndex(gameObject);
            OnControllerEnabled(SetEventPayload());
        }
Ejemplo n.º 19
0
 protected virtual void DoGlanceExitController(object sender, HeadsetControllerAwareEventArgs e)
 {
     if (controllerEvents != null)
     {
         uint controllerIndex = VRTK_DeviceFinder.GetControllerIndex(controllerEvents.gameObject);
         if (controllerIndex == e.controllerIndex)
         {
             ToggleTips(false);
         }
     }
 }
Ejemplo n.º 20
0
 protected virtual void ObscuredStateChanged(GameObject controller, bool obscured, RaycastHit hitInfo)
 {
     if (obscured)
     {
         OnControllerObscured(SetHeadsetControllerAwareEvent(hitInfo, VRTK_DeviceFinder.GetControllerIndex(controller)));
     }
     else
     {
         OnControllerUnobscured(SetHeadsetControllerAwareEvent(hitInfo, VRTK_DeviceFinder.GetControllerIndex(controller)));
     }
 }
        public virtual void OnControllerModelVisible(ControllerActionsEventArgs e)
        {
            if (ControllerModelVisible != null)
            {
                ControllerModelVisible(this, e);
            }

            // fire the event that the controllers are ready now
            var controllerIndex = VRTK_DeviceFinder.GetControllerIndex(gameObject);

            OnControllerModelAvailable(SetActionEvent(controllerIndex));
        }
Ejemplo n.º 22
0
        private IEnumerator Enable()
        {
            yield return(new WaitForEndOfFrame());

            while (!gameObject.activeInHierarchy)
            {
                yield return(null);
            }

            currentIndex = VRTK_DeviceFinder.GetControllerIndex(gameObject);
            OnControllerEnabled(SetEventPayload());
        }
Ejemplo n.º 23
0
        /// <summary>
        /// The ToggleBeam method allows the pointer beam to be toggled on or off via code at runtime. If true is passed as the state then the beam is activated, if false then the beam is deactivated.
        /// </summary>
        /// <param name="state">The state of whether to enable or disable the beam.</param>
        public virtual void ToggleBeam(bool state)
        {
            var index = VRTK_DeviceFinder.GetControllerIndex(gameObject);

            if (state)
            {
                TurnOnBeam(index);
            }
            else
            {
                TurnOffBeam(index);
            }
        }
Ejemplo n.º 24
0
 protected virtual void CheckRumbleController(VRTK_InteractableObject touchedObjectScript)
 {
     if (!triggerRumble)
     {
         var doHaptics = touchedObject.GetComponentInParent <VRTK_InteractHaptics>();
         if (doHaptics != null)
         {
             triggerRumble = true;
             doHaptics.HapticsOnTouch(VRTK_DeviceFinder.GetControllerIndex(gameObject));
             Invoke("ResetTriggerRumble", doHaptics.durationOnTouch);
         }
     }
 }
Ejemplo n.º 25
0
        /// <summary>
        /// The ToggleBeam method allows the pointer beam to be toggled on or off via code at runtime. If true is passed as the state then the beam is activated, if false then the beam is deactivated.
        /// </summary>
        /// <param name="state">The state of whether to enable or disable the beam.</param>
        public virtual void ToggleBeam(bool state)
        {
            var index = (controller ? VRTK_DeviceFinder.GetControllerIndex(controller.gameObject) : uint.MaxValue);

            if (state)
            {
                TurnOnBeam(index);
            }
            else
            {
                TurnOffBeam(index);
            }
        }
Ejemplo n.º 26
0
        private ControllerInteractionEventArgs SetButtonEvent(ref bool buttonBool, bool value, float buttonPressure)
        {
            var controllerIndex = VRTK_DeviceFinder.GetControllerIndex(gameObject);

            buttonBool = value;
            ControllerInteractionEventArgs e;

            e.controllerIndex = controllerIndex;
            e.buttonPressure  = buttonPressure;
            e.touchpadAxis    = VRTK_SDK_Bridge.GetTouchpadAxisOnIndex(controllerIndex);
            e.touchpadAngle   = CalculateTouchpadAxisAngle(e.touchpadAxis);
            return(e);
        }
Ejemplo n.º 27
0
        protected virtual void OnEnable()
        {
            aliasController = VRTK_DeviceFinder.GetScriptAliasController(gameObject);
            if (aliasController == null)
            {
                aliasController = gameObject;
            }

            index = VRTK_DeviceFinder.GetControllerIndex(gameObject);
            SetControllerType();
            StartEmitControllerEnabledAtEndOfFrame();
            ManageControllerModelListeners(true);
        }
Ejemplo n.º 28
0
        protected virtual void GlanceStateChanged(GameObject controller, bool glance)
        {
            var emptyHit = new RaycastHit();

            if (glance)
            {
                OnControllerGlanceEnter(SetHeadsetControllerAwareEvent(emptyHit, VRTK_DeviceFinder.GetControllerIndex(controller)));
            }
            else
            {
                OnControllerGlanceExit(SetHeadsetControllerAwareEvent(emptyHit, VRTK_DeviceFinder.GetControllerIndex(controller)));
            }
        }
Ejemplo n.º 29
0
        private IEnumerator HapticPulse(float duration, float hapticPulseStrength, float pulseInterval)
        {
            if (pulseInterval <= 0)
            {
                yield break;
            }

            while (duration > 0)
            {
                VRTK_SDK_Bridge.HapticPulseOnIndex(VRTK_DeviceFinder.GetControllerIndex(gameObject), hapticPulseStrength);
                yield return(new WaitForSeconds(pulseInterval));

                duration -= pulseInterval;
            }
        }
Ejemplo n.º 30
0
        private void Update()
        {
            var checkIndex = VRTK_DeviceFinder.GetControllerIndex(gameObject);

            if (currentIndex < uint.MaxValue && checkIndex != currentIndex)
            {
                var previousIndex = currentIndex;
                currentIndex = checkIndex;
                OnControllerIndexChanged(SetEventPayload(previousIndex));
            }

            if (aliasController && gameObject.activeInHierarchy && !aliasController.activeSelf)
            {
                aliasController.SetActive(true);
            }
        }