설명 없음
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SwitchSupportHID.cs 6.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #if UNITY_EDITOR || UNITY_SWITCH || UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX || UNITY_WSA
  2. using UnityEngine.InputSystem.Layouts;
  3. namespace UnityEngine.InputSystem.Switch
  4. {
  5. /// <summary>
  6. /// Adds support for Switch NPad controllers.
  7. /// </summary>
  8. #if UNITY_DISABLE_DEFAULT_INPUT_PLUGIN_INITIALIZATION
  9. public
  10. #else
  11. internal
  12. #endif
  13. static class SwitchSupportHID
  14. {
  15. public static void Initialize()
  16. {
  17. #if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WSA
  18. InputSystem.RegisterLayout<SwitchProControllerHID>(
  19. matches: new InputDeviceMatcher()
  20. .WithInterface("HID")
  21. .WithCapability("vendorId", 0x057e) // Nintendo
  22. .WithCapability("productId", 0x2009)); // Pro Controller.
  23. InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
  24. new InputDeviceMatcher()
  25. .WithInterface("HID")
  26. .WithCapability("vendorId", 0x0f0d) // Hori Co., Ltd
  27. .WithCapability("productId", 0x0092)); // Pokken Tournament DX Pro Pad
  28. InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
  29. new InputDeviceMatcher()
  30. .WithInterface("HID")
  31. .WithCapability("vendorId", 0x0f0d) // Hori Co., Ltd
  32. .WithCapability("productId", 0x00aa)); // Real Arcade Pro
  33. InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
  34. new InputDeviceMatcher()
  35. .WithInterface("HID")
  36. .WithCapability("vendorId", 0x0f0d) // Hori Co., Ltd
  37. .WithCapability("productId", 0x00c1)); // HORIPAD for Nintendo Switch
  38. InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
  39. new InputDeviceMatcher()
  40. .WithInterface("HID")
  41. .WithCapability("vendorId", 0x0f0d) // Hori Co., Ltd
  42. .WithCapability("productId", 0x00dc)); // Fighting Commander
  43. InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
  44. new InputDeviceMatcher()
  45. .WithInterface("HID")
  46. .WithCapability("vendorId", 0x0f0d) // Hori Co., Ltd
  47. .WithCapability("productId", 0x00f6)); // HORI Wireless Switch Pad
  48. InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
  49. new InputDeviceMatcher()
  50. .WithInterface("HID")
  51. .WithCapability("vendorId", 0x0e6f) // PDP
  52. .WithCapability("productId", 0x0180)); // Faceoff Wired Pro Controller for Nintendo Switch
  53. InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
  54. new InputDeviceMatcher()
  55. .WithInterface("HID")
  56. .WithCapability("vendorId", 0x0e6f) // PDP
  57. .WithCapability("productId", 0x0181)); // Faceoff Deluxe Wired Pro Controller for Nintendo Switch
  58. InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
  59. new InputDeviceMatcher()
  60. .WithInterface("HID")
  61. .WithCapability("vendorId", 0x0e6f) // PDP
  62. .WithCapability("productId", 0x0185)); // Wired Fight Pad Pro
  63. InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
  64. new InputDeviceMatcher()
  65. .WithInterface("HID")
  66. .WithCapability("vendorId", 0x0e6f) // PDP
  67. .WithCapability("productId", 0x0186)); // Afterglow Wireless Switch Controller - "Nintento Wireless Gamepad"
  68. InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
  69. new InputDeviceMatcher()
  70. .WithInterface("HID")
  71. .WithCapability("vendorId", 0x0e6f) // PDP
  72. .WithCapability("productId", 0x0187)); // Rock Candy Wired Controller for Nintendo Switch
  73. InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
  74. new InputDeviceMatcher()
  75. .WithInterface("HID")
  76. .WithCapability("vendorId", 0x20d6) // PowerA
  77. .WithCapability("productId", 0xa712)); // NSW Fusion Wired FightPad
  78. InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
  79. new InputDeviceMatcher()
  80. .WithInterface("HID")
  81. .WithCapability("vendorId", 0x20d6) // PowerA
  82. .WithCapability("productId", 0xa716)); // NSW Fusion Pro Controller
  83. // gamepads below currently break Mac Editor and Standalone
  84. #if !(UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX)
  85. InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
  86. new InputDeviceMatcher()
  87. .WithInterface("HID")
  88. .WithCapability("vendorId", 0x0e6f) // PDP
  89. .WithCapability("productId", 0x0184)); // Faceoff Premiere Wired Pro Controller for Nintendo Switch
  90. InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
  91. new InputDeviceMatcher()
  92. .WithInterface("HID")
  93. .WithCapability("vendorId", 0x0e6f) // PDP
  94. .WithCapability("productId", 0x0188)); // Afterglow Deluxe+ Audio Wired Controller
  95. InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
  96. new InputDeviceMatcher()
  97. .WithInterface("HID")
  98. .WithCapability("vendorId", 0x20d6) // PowerA
  99. .WithCapability("productId", 0xa714)); // NSW Spectra Wired Controller
  100. InputSystem.RegisterLayoutMatcher<SwitchProControllerHID>(
  101. new InputDeviceMatcher()
  102. .WithInterface("HID")
  103. .WithCapability("vendorId", 0x20d6) // PowerA
  104. .WithCapability("productId", 0xa715)); // Fusion Wireless Arcade Stick
  105. #endif
  106. #endif
  107. }
  108. }
  109. }
  110. #endif