33 lines
891 B
C#
33 lines
891 B
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.XR;
|
|
public class ControllerHapticManager : MonoBehaviour
|
|
{
|
|
public XRNode Hand;
|
|
InputDevice device;
|
|
public float duration = 0.1f;
|
|
public float amplitude = 1f;
|
|
void Start()
|
|
{
|
|
ConfigManager.onConfigChanged += ApplyConfig;
|
|
ConfigManager.EnsureInitialization();
|
|
ApplyConfig();
|
|
}
|
|
private void OnTriggerEnter(Collider other)
|
|
{
|
|
device = InputDevices.GetDeviceAtXRNode(Hand);
|
|
device.SendHapticImpulse(0, amplitude, duration);
|
|
}
|
|
private void OnTriggerExit(Collider other)
|
|
{
|
|
device = InputDevices.GetDeviceAtXRNode(Hand);
|
|
device.StopHaptics();
|
|
}
|
|
void ApplyConfig()
|
|
{
|
|
duration = ConfigManager.config.HapticDuration;
|
|
amplitude = ConfigManager.config.HapticAmplitude;
|
|
}
|
|
}
|