6#if ENABLE_METAQUEST && (UNITY_EDITOR || UNITY_ANDROID || UNITY_STANDALONE_WIN)
12[assembly: UnityEngine.Scripting.AlwaysLinkAssembly]
13[assembly: UnityEngine.Scripting.Preserve]
17 public sealed class MetaQuestProvider : IHapticProvider
20#region HAPTIC CHARACTERISTICS FIELDS
21 private const string DISPLAY_NAME =
"Meta Quest";
22 private const string DESCRIPTION =
"XR controller for Meta Quest";
23 private const string MANUFACTURER =
"Meta";
24 private const string VERSION =
"1.0";
27#region HAPTIC CHARACTERISTICS GETTERS
28 [UnityEngine.Scripting.Preserve]
29 public string DisplayName()
34 [UnityEngine.Scripting.Preserve]
35 public string Description()
40 [UnityEngine.Scripting.Preserve]
41 public string Manufacturer()
46 [UnityEngine.Scripting.Preserve]
47 public string Version()
54 [UnityEngine.Scripting.Preserve]
57 if (UnityEngine.XR.InputDevices.GetDeviceAtXRNode(UnityEngine.XR.XRNode.Head) ==
null)
62 Core.HAR.AddBodyPart(
Perception.Vibration,
BodyPartID.Bp_Left_palm, 1, 1, 1, 500,
false,
false,
false,
true);
63 Core.HAR.AddBodyPart(
Perception.Vibration,
BodyPartID.Bp_Right_palm, 1, 1, 1, 500,
false,
false,
false,
true);
64 if (HapticManager.DebugSwitch)
66 UnityEngine.Debug.Log(
"Meta Quest haptic provider started.");
71 [UnityEngine.Scripting.Preserve]
72 public bool IsPresent()
74 UnityEngine.XR.HapticCapabilities caps =
new UnityEngine.XR.HapticCapabilities();
75 bool isPresent = UnityEngine.XR.InputDevices.GetDeviceAtXRNode(UnityEngine.XR.XRNode.LeftHand).TryGetHapticCapabilities(out caps);
76 isPresent |= UnityEngine.XR.InputDevices.GetDeviceAtXRNode(UnityEngine.XR.XRNode.RightHand).TryGetHapticCapabilities(out caps);
80 [UnityEngine.Scripting.Preserve]
86 [UnityEngine.Scripting.Preserve]
87 public void RenderHaptics()
89 double[] outputBuffer;
93 outputBuffer =
new double[size];
95 UnityXRHapticAbstraction.VibrateLeft(Time.realtimeSinceStartup - Time.time, outputBuffer);
99 UnityXRHapticAbstraction.VibrateLeft(Time.realtimeSinceStartup - Time.time,
null);
105 outputBuffer =
new double[size];
107 UnityXRHapticAbstraction.VibrateRight(Time.realtimeSinceStartup - Time.time, outputBuffer);
111 UnityXRHapticAbstraction.VibrateRight(Time.realtimeSinceStartup - Time.time,
null);
BufferDataType
Enumeration for types of haptic buffer data.
BodyPartID
Enumeration for identifying different body parts for haptic effects.
Perception
Enumeration for different types of haptic perceptions.