public void AddHaptics(IHapticsAware haptics) { HapticsConfig onUse = haptics.HapticsOnUse(); HapticsConfig onTouch = haptics.HapticsOnTouch(); HapticsConfig onGrab = haptics.HapticsOnGrab(); VRTK_InteractHaptics interactHaptic = _gameObject.GetComponent <VRTK_InteractHaptics>(); if (interactHaptic == null) { interactHaptic = _gameObject.AddComponent <VRTK_InteractHaptics>(); } if (onUse != null) { interactHaptic.strengthOnUse = onUse.Strength; interactHaptic.intervalOnUse = onUse.Interval; interactHaptic.durationOnUse = onUse.Duration; //TODO:проверить, нужен ли этот метод в принципе //Убрано при обновлении VRTK //interactHaptic.cancelOnUnuse = onUse.CancelOnUnaction; } else { interactHaptic.strengthOnUse = 0; interactHaptic.durationOnUse = 0; } if (onTouch != null) { interactHaptic.strengthOnTouch = onTouch.Strength; interactHaptic.intervalOnTouch = onTouch.Interval; interactHaptic.durationOnTouch = onTouch.Duration; //TODO:проверить, нужен ли этот метод в принципе //Убрано при обновлении VRTK //interactHaptic.cancelOnUntouch = onTouch.CancelOnUnaction; } else { interactHaptic.strengthOnTouch = 0; interactHaptic.durationOnTouch = 0; } if (onGrab != null) { interactHaptic.strengthOnGrab = onGrab.Strength; interactHaptic.intervalOnGrab = onGrab.Interval; interactHaptic.durationOnGrab = onGrab.Duration; //TODO:проверить, нужен ли этот метод в принципе //Убрано при обновлении VRTK //interactHaptic.cancelOnUngrab = onGrab.CancelOnUnaction; } else { interactHaptic.strengthOnGrab = 0; interactHaptic.durationOnGrab = 0; } }
/// <summary> /// The system calls this each frame to update haptics playback. /// </summary> public static void Process() { HapticsConfig.Load(); for (var i = 0; i < m_outputs.Length; i++) { m_outputs[i].Process(); } }
static Haptics() { HapticsConfig.Load(); m_outputs = new HapticsOutput[] { new HapticsOutput((uint)Plugin.Controller.LTouch), new HapticsOutput((uint)Plugin.Controller.RTouch), }; Channels = new HapticsChannel[] { LeftChannel = new HapticsChannel(0), RightChannel = new HapticsChannel(1), }; }
private void AddHaptics(IHapticsAware haptics) { HapticsConfig onUse = haptics.HapticsOnUse(); HapticsConfig onTouch = haptics.HapticsOnTouch(); HapticsConfig onGrab = haptics.HapticsOnGrab(); ObjectInteraction.InteractHaptics interactHaptic = InputAdapter.Instance.ObjectInteraction.Haptics.GetFrom(_gameObject) ?? InputAdapter.Instance.ObjectInteraction.Haptics.AddTo(_gameObject); if (onUse != null) { interactHaptic.StrengthOnUse = onUse.Strength; interactHaptic.IntervalOnUse = onUse.Interval; interactHaptic.DurationOnUse = onUse.Duration; } else { interactHaptic.StrengthOnUse = 0; interactHaptic.DurationOnUse = 0; } if (onTouch != null) { interactHaptic.StrengthOnTouch = onTouch.Strength; interactHaptic.IntervalOnTouch = onTouch.Interval; interactHaptic.DurationOnTouch = onTouch.Duration; } else { interactHaptic.StrengthOnTouch = 0; interactHaptic.DurationOnTouch = 0; } if (onGrab != null) { interactHaptic.StrengthOnGrab = onGrab.Strength; interactHaptic.IntervalOnGrab = onGrab.Interval; interactHaptic.DurationOnGrab = onGrab.Duration; } else { interactHaptic.StrengthOnGrab = 0; interactHaptic.DurationOnGrab = 0; } }