#if UNITY_EDITOR || UNITY_SWITCH || UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX || UNITY_WSA using UnityEngine.InputSystem.Layouts; namespace UnityEngine.InputSystem.Switch { /// /// Adds support for Switch NPad controllers. /// #if UNITY_DISABLE_DEFAULT_INPUT_PLUGIN_INITIALIZATION public #else internal #endif static class SwitchSupportHID { public static void Initialize() { #if UNITY_EDITOR || UNITY_STANDALONE || UNITY_WSA InputSystem.RegisterLayout( matches: new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x057e) // Nintendo .WithCapability("productId", 0x2009)); // Pro Controller. InputSystem.RegisterLayoutMatcher( new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x0f0d) // Hori Co., Ltd .WithCapability("productId", 0x0092)); // Pokken Tournament DX Pro Pad InputSystem.RegisterLayoutMatcher( new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x0f0d) // Hori Co., Ltd .WithCapability("productId", 0x00aa)); // Real Arcade Pro InputSystem.RegisterLayoutMatcher( new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x0f0d) // Hori Co., Ltd .WithCapability("productId", 0x00c1)); // HORIPAD for Nintendo Switch InputSystem.RegisterLayoutMatcher( new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x0f0d) // Hori Co., Ltd .WithCapability("productId", 0x00dc)); // Fighting Commander InputSystem.RegisterLayoutMatcher( new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x0f0d) // Hori Co., Ltd .WithCapability("productId", 0x00f6)); // HORI Wireless Switch Pad InputSystem.RegisterLayoutMatcher( new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x0e6f) // PDP .WithCapability("productId", 0x0180)); // Faceoff Wired Pro Controller for Nintendo Switch InputSystem.RegisterLayoutMatcher( new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x0e6f) // PDP .WithCapability("productId", 0x0181)); // Faceoff Deluxe Wired Pro Controller for Nintendo Switch InputSystem.RegisterLayoutMatcher( new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x0e6f) // PDP .WithCapability("productId", 0x0185)); // Wired Fight Pad Pro InputSystem.RegisterLayoutMatcher( new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x0e6f) // PDP .WithCapability("productId", 0x0186)); // Afterglow Wireless Switch Controller - "Nintento Wireless Gamepad" InputSystem.RegisterLayoutMatcher( new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x0e6f) // PDP .WithCapability("productId", 0x0187)); // Rock Candy Wired Controller for Nintendo Switch InputSystem.RegisterLayoutMatcher( new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x20d6) // PowerA .WithCapability("productId", 0xa712)); // NSW Fusion Wired FightPad InputSystem.RegisterLayoutMatcher( new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x20d6) // PowerA .WithCapability("productId", 0xa716)); // NSW Fusion Pro Controller // gamepads below currently break Mac Editor and Standalone #if !(UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) InputSystem.RegisterLayoutMatcher( new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x0e6f) // PDP .WithCapability("productId", 0x0184)); // Faceoff Premiere Wired Pro Controller for Nintendo Switch InputSystem.RegisterLayoutMatcher( new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x0e6f) // PDP .WithCapability("productId", 0x0188)); // Afterglow Deluxe+ Audio Wired Controller InputSystem.RegisterLayoutMatcher( new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x20d6) // PowerA .WithCapability("productId", 0xa714)); // NSW Spectra Wired Controller InputSystem.RegisterLayoutMatcher( new InputDeviceMatcher() .WithInterface("HID") .WithCapability("vendorId", 0x20d6) // PowerA .WithCapability("productId", 0xa715)); // Fusion Wireless Arcade Stick #endif #endif } } } #endif