VR4Medical/ICI/Library/PackageCache/com.unity.xr.openxr@3903c1059bcf/Samples~/Controller/Scripts/ActionToHaptics.cs
2025-07-29 13:45:50 +03:00

32 lines
932 B
C#

using UnityEngine.InputSystem;
using UnityEngine.XR.OpenXR.Input;
namespace UnityEngine.XR.OpenXR.Samples.ControllerSample
{
public class ActionToHaptics : MonoBehaviour
{
public InputActionReference action;
public InputActionReference hapticAction;
public float _amplitude = 1.0f;
public float _duration = 0.1f;
public float _frequency = 0.0f;
private void Start()
{
if (action == null || hapticAction == null)
return;
action.action.Enable();
hapticAction.action.Enable();
action.action.performed += (ctx) =>
{
var control = action.action.activeControl;
if (null == control)
return;
OpenXRInput.SendHapticImpulse(hapticAction.action, _amplitude, _frequency, _duration, control.device);
};
}
}
}