WindowsMR.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. #if UNITY_INPUT_SYSTEM_ENABLE_XR && !DISABLE_BUILTIN_INPUT_SYSTEM_WINDOWSMR && !PACKAGE_DOCS_GENERATION
  2. using UnityEngine.InputSystem.XR;
  3. using UnityEngine.InputSystem.Controls;
  4. using UnityEngine.InputSystem.Layouts;
  5. using UnityEngine.Scripting;
  6. namespace UnityEngine.XR.WindowsMR.Input
  7. {
  8. /// <summary>
  9. /// A Windows Mixed Reality XR headset.
  10. /// </summary>
  11. [Preserve]
  12. [InputControlLayout(displayName = "Windows MR Headset")]
  13. public class WMRHMD : XRHMD
  14. {
  15. [Preserve]
  16. [InputControl]
  17. [InputControl(name = "devicePosition", layout = "Vector3", aliases = new[] { "HeadPosition" })]
  18. [InputControl(name = "deviceRotation", layout = "Quaternion", aliases = new[] { "HeadRotation" })]
  19. public ButtonControl userPresence { get; private set; }
  20. protected override void FinishSetup()
  21. {
  22. base.FinishSetup();
  23. userPresence = GetChildControl<ButtonControl>("userPresence");
  24. }
  25. }
  26. /// <summary>
  27. /// A Windows Mixed Reality XR controller.
  28. /// </summary>
  29. [Preserve]
  30. [InputControlLayout(displayName = "HoloLens Hand", commonUsages = new[] { "LeftHand", "RightHand" })]
  31. public class HololensHand : XRController
  32. {
  33. [Preserve]
  34. [InputControl(noisy = true, aliases = new[] { "gripVelocity" })]
  35. public Vector3Control deviceVelocity { get; private set; }
  36. [Preserve]
  37. [InputControl(aliases = new[] { "triggerbutton" })]
  38. public ButtonControl airTap { get; private set; }
  39. [Preserve]
  40. [InputControl(noisy = true)]
  41. public AxisControl sourceLossRisk { get; private set; }
  42. [Preserve]
  43. [InputControl(noisy = true)]
  44. public Vector3Control sourceLossMitigationDirection { get; private set; }
  45. protected override void FinishSetup()
  46. {
  47. base.FinishSetup();
  48. airTap = GetChildControl<ButtonControl>("airTap");
  49. deviceVelocity = GetChildControl<Vector3Control>("deviceVelocity");
  50. sourceLossRisk = GetChildControl<AxisControl>("sourceLossRisk");
  51. sourceLossMitigationDirection = GetChildControl<Vector3Control>("sourceLossMitigationDirection");
  52. }
  53. }
  54. [Preserve]
  55. [InputControlLayout(displayName = "Windows MR Controller", commonUsages = new[] { "LeftHand", "RightHand" })]
  56. public class WMRSpatialController : XRControllerWithRumble
  57. {
  58. [Preserve]
  59. [InputControl(aliases = new[] { "Primary2DAxis", "thumbstickaxes" })]
  60. public Vector2Control joystick { get; private set; }
  61. [Preserve]
  62. [InputControl(aliases = new[] { "Secondary2DAxis", "touchpadaxes" })]
  63. public Vector2Control touchpad { get; private set; }
  64. [Preserve]
  65. [InputControl(aliases = new[] { "gripaxis" })]
  66. public AxisControl grip { get; private set; }
  67. [Preserve]
  68. [InputControl(aliases = new[] { "gripbutton" })]
  69. public ButtonControl gripPressed { get; private set; }
  70. [Preserve]
  71. [InputControl(aliases = new[] { "Primary", "menubutton" })]
  72. public ButtonControl menu { get; private set; }
  73. [Preserve]
  74. [InputControl(aliases = new[] { "triggeraxis" })]
  75. public AxisControl trigger { get; private set; }
  76. [Preserve]
  77. [InputControl(aliases = new[] { "triggerbutton" })]
  78. public ButtonControl triggerPressed { get; private set; }
  79. [Preserve]
  80. [InputControl(aliases = new[] { "thumbstickpressed" })]
  81. public ButtonControl joystickClicked { get; private set; }
  82. [Preserve]
  83. [InputControl(aliases = new[] { "joystickorpadpressed", "touchpadpressed" })]
  84. public ButtonControl touchpadClicked { get; private set; }
  85. [Preserve]
  86. [InputControl(aliases = new[] { "joystickorpadtouched", "touchpadtouched" })]
  87. public ButtonControl touchpadTouched { get; private set; }
  88. [Preserve]
  89. [InputControl(noisy = true, aliases = new[] { "gripVelocity" })]
  90. public Vector3Control deviceVelocity { get; private set; }
  91. [Preserve]
  92. [InputControl(noisy = true, aliases = new[] { "gripAngularVelocity" })]
  93. public Vector3Control deviceAngularVelocity { get; private set; }
  94. [Preserve]
  95. [InputControl(noisy = true)]
  96. public AxisControl batteryLevel { get; private set; }
  97. [Preserve]
  98. [InputControl(noisy = true)]
  99. public AxisControl sourceLossRisk { get; private set; }
  100. [Preserve]
  101. [InputControl(noisy = true)]
  102. public Vector3Control sourceLossMitigationDirection { get; private set; }
  103. [Preserve]
  104. [InputControl(noisy = true)]
  105. public Vector3Control pointerPosition { get; private set; }
  106. [Preserve]
  107. [InputControl(noisy = true, aliases = new[] { "PointerOrientation" })]
  108. public QuaternionControl pointerRotation { get; private set; }
  109. protected override void FinishSetup()
  110. {
  111. base.FinishSetup();
  112. joystick = GetChildControl<Vector2Control>("joystick");
  113. trigger = GetChildControl<AxisControl>("trigger");
  114. touchpad = GetChildControl<Vector2Control>("touchpad");
  115. grip = GetChildControl<AxisControl>("grip");
  116. gripPressed = GetChildControl<ButtonControl>("gripPressed");
  117. menu = GetChildControl<ButtonControl>("menu");
  118. joystickClicked = GetChildControl<ButtonControl>("joystickClicked");
  119. triggerPressed = GetChildControl<ButtonControl>("triggerPressed");
  120. touchpadClicked = GetChildControl<ButtonControl>("touchpadClicked");
  121. touchpadTouched = GetChildControl<ButtonControl>("touchPadTouched");
  122. deviceVelocity = GetChildControl<Vector3Control>("deviceVelocity");
  123. deviceAngularVelocity = GetChildControl<Vector3Control>("deviceAngularVelocity");
  124. batteryLevel = GetChildControl<AxisControl>("batteryLevel");
  125. sourceLossRisk = GetChildControl<AxisControl>("sourceLossRisk");
  126. sourceLossMitigationDirection = GetChildControl<Vector3Control>("sourceLossMitigationDirection");
  127. pointerPosition = GetChildControl<Vector3Control>("pointerPosition");
  128. pointerRotation = GetChildControl<QuaternionControl>("pointerRotation");
  129. }
  130. }
  131. }
  132. #endif