1.1.54.1: Bug Fixes: - New Custom Platform Hardware Joystick Map Platform Map axis values are now set to the correct default values when adding an axis. 1.1.54.0: Changes: - Added variants to Rewired.Platforms.Custom.HardwareJoystickMapCustomPlatformMapSimple. API Changes: - Added Rewired.Platforms.Custom.HardwareJoystickMapCustomPlatformMapSimpleBase class. - Moved Rewired.Platforms.Custom.HardwareJoystickMapCustomPlatformMapSimple.MatchingCriteria class to Rewired.Platforms.Custom.HardwareJoystickMapCustomPlatformMapSimpleBase.MatchingCriteria. Bug Fixes: - Added detection of initial application focused state with Application.isFocused (Unity 2017+) to eliminate edge case of application incorrectly responding to input events in builds if window is defocused during initial application loading while Application.runInBackground is true and Rewired is not initialized on Awake in the first scene of the application on certain platforms using certain input sources. 1.1.53.0: Changes: - Added editor inspector support for Custom Platform Hardware Joystick Map Platform Map variants. - Updated Custom Platform example to illustrate variants and HardwareJoystickMapCustomPlatformMapSimpleSO. API Changes: - Added Rewired.Platforms.Custom.HardwareJoystickMapCustomPlatformMapSimple class. - Added Rewired.Platforms.Custom.HardwareJoystickMapCustomPlatformMapSimple.MatchingCriteria class. - Added HardwareJoystickMapCustomPlatformMapSimpleSO class. 1.1.52.0: Changes: - Added Custom Platforms: Developers can now add support for platforms not supported natively by Rewired. - Added Custom Platform example. - Updated Unity version check handling for Unity 6 in preparation for Unity 6 support. (Unity 6 support has not been added in this release.) API Changes: - Added Rewired.Platforms.Custom.CustomPlatformConfigVars class. - Added Rewired.Platforms.Custom.CustomPlatformInitOptions class. - Added Rewired.Platforms.Custom.CustomPlatformInputSource class. - Added Rewired.Platforms.Custom.CustomPlatformInputSource.InitOptions class. - Added Rewired.Platforms.Custom.CustomPlatformInputSource.Joystick class. - Added Rewired.Platforms.Custom.CustomPlatformUnifiedControllerSource class. - Added Rewired.Platforms.Custom.CustomPlatformUnifiedKeyboardSource class. - Added Rewired.Platforms.Custom.CustomPlatformUnifiedMouseSource class. - Added Rewired.Platforms.Custom.HardwareJoystickMapCustomPlatformMap class. - Added Rewired.Platforms.Custom.HardwareJoystickMapCustomPlatformMap.Axis class. - Added Rewired.Platforms.Custom.HardwareJoystickMapCustomPlatformMap.Button class. - Added Rewired.Platforms.Custom.HardwareJoystickMapCustomPlatformMap.Elements class. - Added Rewired.Platforms.Custom.HardwareJoystickMapCustomPlatformMap.MatchingCriteria class. - Added Rewired.Platforms.Custom.HardwareJoystickMapCustomPlatformMap class. - Added Rewired.Platforms.Custom.HardwareJoystickMapCustomPlatformMapSO class. - Added Rewired.Platforms.Custom.ICustomPlatformInitializer interface. - Added Rewired.Platforms.Custom.IHardwareJoystickMapCustomPlatformMapProvider interface. Bug Fixes: - Updated editor code to handle recently changed Xbox Game Core build target strings when automatically setting Rewired_Core.dll build targets. 1.1.51.0: Changes: - Windows Standalone, Unity 2023: Added ARM64 native library Rewired_WindowsGamingInput.dll. - Windows Standalone: Rewired_DirectInput.dll minimum Windows version support changed to 10.0.17134.0. - windows Standalone: Rewired_DirectInput.dll changed to static linking of VC runtime. Bug Fixes: - Unity 2023, Windows Standalone: Fixed Rewired_WindowsGamingInput.dll plugin importer settings that were not inherited properly when copying the meta file from an older version of Unity causing Unity to attempt to include the 64-bit DLL in 32-bit builds. 1.1.50.0: Changes: - Added keyboard key combination override modes. - Changed the default keyboard key combination override mode to Cancel. This mode makes key combination override behavior more intuitive, with Actions bound to modifier keys canceled when a key combo is activated that contains that modifier key. Canceled Actions do not return True until the bound key is released and pressed again. Existing Rewired Input Managers will retain the legacy mode (Pause), but newly created Rewired Input Managers will default to Cancel. - Added Key Combination Override Mode to Rewired Input Manager Settings. - Added Generate Key Events On Key Combination Override to Rewired Input Manager Settings. - Added Enhanced Device Support device type exclusion options. API Changes: - Added Rewired.Config.KeyCombinationOverrideMode enum. - Added ReInput.ConfigHelper.keyCombinationOverrideMode property. - Added ReInput.ConfigHelper.generateKeyEventsOnKeyCombinationOverride property. - Added Rewired.ControllerExtensions.DualSenseExtension.GetVibrationMode function. - Added Rewired.ControllerExtensions.DualSenseExtension.SetVibrationMode function. - Addde Rewired.ControllerExtensions.DualSenseVibrationMode enum. - Added Rewired.Config.EnhancedDeviceSupportDeviceType enum. - Added ReInput.ConfigHelper.enhancedDeviceSupportExcludedDeviceTypes property. Bug Fixes: - Player.GetButtonTimePressed and Player.GetButtonTimeUnpressed now return correct values when an Action bound to a keyboard modifier key has its value blocked or unblocked due to a key combination being activated or deactivated that includes the modifier key and Key Combination Override mode is set to Pause and Generate Key Events On Key Combination Override is disabled. 1.1.49.2: Changes: - Updated Cinemachine integration to work with Unity Editor Play Mode options. Controller Definitions: - Microsoft Xbox One, Android: Changed mapping of View button for newer Android versions dropping support for older versions of Android that map the View button to keyboard ESC. Bug Fixes: - Rewired_MacOS library: Now ad-hoc signed instead of signed with development identity. - Rewired_MacOS library: Prevent possible issues on MacOS versions < 11. 1.1.49.1: Bug Fixes: - MacOS Standalone, Native, Enhanced Device Support: Fixed bug causing controllers using Enhanced Device Support to stop working after editor pause, long level loading time, or application out of focus with Unity Player -> Run in Background disabled. 1.1.49.0: Changes: - Added Use Physical Keys (Unity) option in Rewired Input Manager to detect Unity Physical Keys setting and to display warning to users about implications of using this setting. (Unity 2021.2+) - Native Keyboard Handling is disabled if Unity Physical Keys setting is enabled. API Changes: - Added Rewired.Platforms.MacOS.IOKit.IOKitControllerExtension class. - Added Rewired.Platforms.Linux.UDev.UdevControllerExtension class. - Added Rewired.Platforms.Windows.XInput.XInputControllerExtension class. - Added Rewired.Platforms.Windows.XInput.CapabilityFlags enum. - Added Rewired.Platforms.Windows.XInput.DeviceType enum. - Added Rewired.Platforms.Windows.XInput.DeviceSubType enum. - Added Rewired.Platforms.Microsoft.WindowsGamingInput.WindowsGamingInputControllerExtension class. - Added Rewired.Platforms.Microsoft.WindowsGamingInput.DeviceType enum. - Added Rewired.Platforms.UWP.HID.HIDControllerExtension class. 1.1.48.0: Changes: - Linux Standalone, Native: Added Enhanced Device Support option. Special device features such as Sony DualSense vibration, IMU, and trigger haptics now work on Linux. (See documentation for Linux permissions issues.) - Linux Standalone, Native: Modified format of joystick.HardwareIdentifier string. - Windows Standalone, Raw Input: Modified format of joystick.HardwareIdentifier string for consistency. - Windows Standalone, Direct Input: Modified format of joystick.HardwareIdentifier string for consistency. - MacOS, Native: Modified format of joystick.HardwareIdentifier string for consistency. - Enhanced Device Support, Sony DualSense: Changed to vibration compatibility mode v2 for proper vibration intensity ramp, removed workaround. - MacOS Standalone, Native, Enhanced Device Support: Sony DualSense special features now work when connected via Bluetooth. - MacOS Standalone, Native, Enhanced Device Support: Sony DualShock 4 special features now work when connected via Bluetooth. Controller Definitions: - Sony DualSense, Linux Native: Added more device identifiers for matching. - Nintendo Pro Controller, Linux Native: Added variant for newer versions of Ubuntu. - Nintendo Left Joy-Con, Linux Native: Added variant for newer versions of Ubuntu. - Nintendo Right Joy-Con, Linux Native: Added variant for newer versions of Ubuntu. Bug Fixes: - Windows Standalone, Raw Input + Enhanced Device Support: Fixed possible issue with cleanup of resources for devices supported by Enhanced Device Support. - Windows Standalone, Raw Input + Enhanced Device Support: Fixed Sony DualShock 4 special features no longer working via Bluetooth (bug introduced in 1.1.47.0). 1.1.47.0: Changes: - Windows Standalone: Added support for Windows.Gaming.Input input source (Requires Windows 10, October 2018 Update version 1809 (10.0.17763.0) or greater. Will fall back to other input sources on older versions of Windows.) Note: This option is now enabled by default on newly created Rewired Input Managers, but existing instances are not modified and the option must be manually enabled in Rewired Editor -> Settings -> Windows. - Added Rewired_WindowsGamingInput.dll native library. - Windows Standalone Raw Input, MacOS Native, Enhanced Device Support: Added DualSense trigger effect support. - MacOS Game Controller Framework: Added DualSense trigger effect support. - MacOS Game Controller Framework: Excluded Nintendo Switch Joy-Cons due to devices not functioning correctly through Game Controller Framework. - Added DualSense Edge support (not tested). - Android: Improved keyfile detection of Dual Shock 4 and Dual Sense controllers due to problems caused by Android fragementation. - Windows UWP, Native: Improved filtering of non-XInput compatible HID controllers that are supported by Windows.Gaming.Input.Gamepad to prevent duplicate devices from appearing when both Gamepad API and HID API are enabled. - Windows UWP, Native: Xbox 360 and Xbox One Controllers and now recognized as distinct controller types instead of being identified as "XInput Gamepad" with limited. - Windows UWP, Native: Added device type and HID product name to joystick.HardwareIdentifier string. - Windows UWP, Native: Updated minimum supported windows version to Windows 10, Fall Creators Update version 1709 (10.0.16299.0). - Rewired Editor: Changed some terminology under Settings -> Windows UWP. - Windows Standalone Raw Input, OSX Native, Enhanced Device Support: Added internal drivers for Nintendo Switch Pro Controller and Joy-Cons to support vibration and certain special controller features. - Windows Standalone Raw Input, OSX Native, Enhanced Device Support: Added workaround for lack of perceptible vibration ramp on Dual Sense. - Added more information to Debug Information. API Changes: - Added ReInput.ConfigHelper.useWindowsGamingInput property. - Added Rewired.ControllerExtensions.IDualSenseExtension interface. - Added Rewired.ControllerExtensions.IDualSenseGamepadTriggerEffect interface. - Added Rewired.ControllerExtensions.DualSenseGamepadTriggerType enum. - Added Rewired.ControllerExtensions.DualSenseGamepadTriggerEffectType enum. - Added Rewired.ControllerExtensions.DualSenseGamepadTriggerEffectState enum. - Added Rewired.ControllerExtensions.DualSenseGamepadTriggerEffectPositionValueSet struct. - Added Rewired.ControllerExtensions.DualSenseGamepadTriggerEffectOff struct. - Added Rewired.ControllerExtensions.DualSenseGamepadTriggerEffectFeedback struct. - Added Rewired.ControllerExtensions.DualSenseGamepadTriggerEffectWeapon struct. - Added Rewired.ControllerExtensions.DualSenseGamepadTriggerEffectVibration struct. - Added Rewired.ControllerExtensions.DualSenseGamepadTriggerEffectMultiplePositionFeedback struct. - Added Rewired.ControllerExtensions.DualSenseGamepadTriggerEffectSlopeFeedback struct. - Added Rewired.ControllerExtensions.DualSenseGamepadTriggerEffectMultiplePositionVibration struct. - Added Rewired.ControllerExtensions.DualSenseGamepadExtension.SetTriggerEffect function. - Added Rewired.ControllerExtensions.IHIDControllerExtension interface. - Added Rewired.ControllerExtensions.NintendoSwitchGamepadExtension class. - Added Rewired.ControllerExtensions.NintendoSwitchProControllerExtension class. - Added Rewired.ControllerExtensions.NintendoSwitchJoyConExtension class. - Added Rewired.ControllerExtensions.NintendoSwitchGamepadVibration struct. - Added Rewired.ControllerExtensions.NintendoSwitchJoyConType enum. - Added Rewired.ControllerExtensions.NintendoSwitchJoyConGripStyle enum. - Added Rewired.Platforms.Apple.GameController.GCControllerDualSenseExtension.SetTriggerEffect function. - Added Rewired.Platforms.Windows.RawInput.RawInputControllerExtension class. - Added Rewired.Platforms.Windows.DirectInput.DirectInputControllerExtension class. - Added ReInput.ConfigHelper.windowsUWPSupportGamepads property. - Added ReInput.ConfigHelper.useAppleGameControllerFramework property. - Added Rewired.ControllerExtensions.IHIDControllerExtension interface to Rewired.ControllerExtensions.DualSenseExtension, Rewired.ControllerExtensions.DualShock4Extension, and Rewired.ControllerExtensions.RailDriverExtension. Controller Definitions: - Nintendo Switch Pro Controlller, Apple Game Controller Framework: Added definition. - Windows, Windows Gaming Input: Added Steam-configured variants to Xbox 360 Controller, Xbox One Controller, Sony DualShock 4, Sony DualSense, Nintendo Pro Controller, Nintendo Joy-Con (L), Nintendo Joy-Con (R), Steam Controller. Bug fixes: - Windows Standalone, Raw Input: Fixed bug introduced in 1.1.45.2 causing Raw Input events to not be forwarded to UnityEngine.Input until the application first lost and then received focus again. This only affected UnityEngine.Input mouse axis values. 1.1.46.0: Changes: - Changed Rewired Editor colors and bolded controller names that have an existing controller map due to Unity editor default skin changes at some unknown Unity version in the past causing skin colors to be off. API Changes: - Added InputMapper.ConflictResponse.Swap enum value. - Added InputMapper.ConflictFoundEventData.IsSwapAllowed function. Modified Controller Definitions: - Apple MFI Controller, iOS Fallback: Added Left Stick Button and Right Stick Button mappings for Xbox and Sony controllers. NOTE: Only works in versions of Unity that support these additional buttons. It is not known at what version the button mappings were added to Unity. 1.1.45.3: Changes: - Removed reference to TouchInputModule class in RewiredStandaloneInputModule due to deprecation and removal of class in some unknown update version of Unity UI causing compiler errors on a fresh install. 1.1.45.2: Changes: - Windows Standalone, Raw Input: Raw Input events are no longer forwarded to Unity when application is paused or out of focus. 1.1.45.1: Changes: - Changes to support Game Core plugin in Unity 2017 for specific customer. 1.1.45.0: Changes: - Added Unity 2023 branch. - Updated internal GUIText component for breaking change in Unity 2022.2+ removing Arial.ttf from default assets. - Exceptions thrown by event handlers and caught by Rewired are now logged as exceptions instead of as errors so they can be handled by tools such as Sentry. API Changes: - Added ControllerMap.ElementMaps property (alias for AllMaps property). Modified Controller Definitions: - Updated Microsoft Xbox One Controller definition to account for breaking changes to mappings, presumably due to firmware updates, on Linux Native, and added additional identifiers to match more Xbox Series S|X controllers. - Added Menu, Left Stick Button, and Right Stick Button bindings to Gamepad Template map for Apple MFi Controller. Bug Fixes: - Fixed PlayerController.GetElement returning only Axis elements. - Fixed PlayerController.Element.name always returning null. - Added workaround for Mono bug? that caused allocation of 32 bytes of garbage periodically in Windows. - Windows Standalone, MacOS Standalone, with Enhanced Device Support enabled: Fixed infinitely-expanding buffer in memory caused by input event buffer on Sony DualShock 4 and Sony DualSense controllers in the Unity editor when pausing Play mode and in builds when the application is out of focus and the Unity Player setting "Run in Background" is false. - Fixed bug causing negative Axis Contribution on Actions bound to a trigger to be lost when converting a Gamepad Template Map to a Controller Map using ControllerTemplateMap.ToControllerMap when the gamepad has digital buttons instead of analog triggers. - Fixed UWP platform compiler errors in Unity 2022+. 1.1.44.0: Changes: - MacOS, Game Controller Framework: Added support for setting light color on Dual Shock 4 and Dual Sense controllers. - Checks Unity Active Input Manager setting on installation and warns user if set to an incompatible setting. - Internal changes to allow Rewired plugins to optionally run target platform-specific code in the Unity editor. API Changes: - Added Rewired.Platforms.Apple.GameController.GCControllerDualShock4Extension.SetLightColor functions. - Added Rewired.Platforms.Apple.GameController.GCControllerDualSenseExtension.SetLightColor functions. Bug Fixes: - Mac OS Standalone, Native, Game Controller Framework enabled: Fixed bug causing crash in MacOS versions prior to 11.0. - Reverted old workaround for a platform-specific Unity bug in Rewired Pointer Input Module which disabled the check to see if a mouse is present before processing mouse input events. The workaround caused issues because touch input changes the Unity mouse pointer position. 1.1.43.0: Changes: - Added MacOS Game Controller Framework support. API Changes: - Added ControllerMap.CreateFromJson function. - Added Controller.Element.compoundElement property. - Added Controller.GetCompoundElementById function. 1.1.42.1: Bug Fixes: - Fixed missing method exception thrown when editing Custom Controllers in Rewired Editor. 1.1.42.0: Changes: - Added Unity 2022 branch. - Removed support for many old platforms: Windows 8 Phone, Windows 8 Store, Windows 8.1 Universal, Ouya, PS3, Wii, WiiU, Xbox 360, Blackberry, Google Nexus Player, Gamestick. - Removed PS4 support from core. A plugin is now required for PS4 support. See Special Platforms in the documentation for details. - Added support for Sony PlayStation 4 plugin. - Added support for Sony PlayStation 5 plugin. - Added support for Nintendo Switch plugin running in Unity Editor. - OSX: Updated SDL2 library to 2.0.20, universal Intel/Apple Silicon. (SDL2 library files in project must be deleted and re-installed from the menu.) - Added Rewired_DirectInput.pdb files. - Added option to disable mouse input on platforms and avoid polling for mouse input values on Unity-based input sources to reduce CPU usage on certain platforms. Bug Fixes: - Removed warning in editor when Unity Input System is enabled in Unity 2021.2+. - Rewired Input Manager Settings configuration is no longer reset when using Compact Ids function. - Controller Map returns the correct controller type even before data is baked when creating a Controller Map from XML. - Controller id defaults to -1 instead of 0 for incomplete Controller Maps which have been created outside a Player and have no associated Controller. - Creating an ActionElementMap in an incomplete Controller Map can no longer throw an exception if no Controller exists when the Controller Map has an undefined Controller id. - Control Mapper: Adding a Map categories that is set to not User Assignable to the list of categories to display no longer break the layout. 1.1.41.5: Bug Fixes: - Control Mapper: Fixed compiler error in Text Mesh Pro version of Control Mapper introduced in 1.1.41.4. 1.1.41.4: Changes: - Added attempted workarounds to hopefully prevent API updater from seeing any calls to Texture2D.Resize in the Rewired_Core.dll assembly. A new Unity bug in the API updater in 2021.2 was causing it to crash on Rewired_Core.dll because of the use of Texture2D.Resize. This prevented Rewired_Core.dll from being loaded, completely breaking Rewired. The issue seems to be intermittent, not reproducible in every project, but in some projects likes ones upgraded from prior versions of Unity. This issue was not caused by Rewired but by Unity's API updater. - Changed Corgi Engine integration to use reflection to get value of base InventoryInputManager.InventoryOpen because of breaking changes changing the name of this field to InventoryInputManager.InventoryIsOpen with no way to branch code to support both versions. Bug Fixes: - OSX Standalone, Native: Fixed Xbox Wireless Controller (Xbox Series S/X controller) view button not working. - Control Mapper: UI no longer gets stuck in a bad state when changing language while a popup window is open. 1.1.41.3: Bug Fixes: - OSX Standalone, Native, Enhanced Device support enabled: Fixed Dual Shock 4 axes not working when connected via USB bug introduced in 1.1.41.2. 1.1.41.2: Bug Fixes: - Unity 2021.2+, Windows Standalone, Raw Input, Direct Input w/ Native Mouse/Keyboard Handling: Fixed bug in processing Raw Input messages on 32-bit builds running on 64-bit Windows resulting in Unity logging "Invalid raw input data size" messages when using certain controllers. - Reworked Rewired Editor handling of prefabs in versions of Unity that use the new prefab workflow due to new errors caused by recent updates to Unity resulting in data not being saved when modifying data in a prefab using the Rewired Editor. - Rewired Input Manager "Don't Destroy on Load" setting is set properly when Rewired Initializer is a child of a GameObject and instantiates the Rewired Input Manager as a child of that parent GameObject. - Fixed Global Options Window not displaying any information. 1.1.41.1: Changes: - Added warning to Rewired Input Manager editor to warn users to set Joystick Auto Assignment Max Joysticks Per Player to 100 if a single-player game because of how many developers ignore this setting are left with games that cannot be controlled if a virtual controller or another controller is connected to the system that takes priority other than the one the user is trying to use. Bug Fixes: - Unity 2021.2+, Windows Standalone, Raw Input, Direct Input w/ Native Mouse/Keyboard Handling: Fixed bug in new Raw Input event forwarding that could cause a multiple of the number of events to be forwarded to Unity if the number of events that were received during a frame exceeded 100. This could occur after execution was resumed from a breakpoint in a debugger due to mouse and keyboard input. 1.1.41.0: Changes: - Windows Standalone, Raw Input, Direct Input w/ Native Mouse/Keyboard Handling: Raw Input messages are now retrieved using GetRawInputBuffer method due to changes to Unity input in Unity 2021.2+ that breaks Rewired's Raw Input message handling due to their use of GetRawInputBuffer to eliminate massive frame rate drop from high refresh rate mice (4000-8000 Hz). Their change to GetRawInputBuffer, which consumes all the Raw Input events when called, makes it impossible for Rewired to continue to share mouse input events with Unity so both Unity's mouse input and Rewired's native mouse input work simultaneously. - Implemented Raw Input event forwarding to Unity through new Unity API exposed for this purpose in 2021.2.0. Bonus effect of this change is that Rewired can now be used alongside the new Unity Input System on Windows. Bug Fixes: - Null reference exception is no longer thrown when certain custom driver functions are called in Start or Awake (ex: DualShock4ControllerExtension.GetGyroscopeValue). - Unity Editor: Adding the Nintendo Switch Input Manager component using button on the Rewired Input Manager inspector now sets the GameObject dirty so the object gets saved correctly. - When first enabling the only Controller Map that binds a particular Action to the negative pole of an axis while currently holding that axis in a negative state with a value beyond the button activation threshold and querying that Action for its negative button down value will no longer return a down state. 1.1.40.0: Changes: - Disabling Visual Studio 2019 jump optimizer for Windows IL2CPP builds is no longer required. - Performance improvements. - UFE2 Integration: Reworked integration script again due to breaking changes in Unity causing EventSystem exceptions to be thrown. - UFE2 Integration: Changed supported version to 2.4.1. API Changes: - Changed return type of Player.ControllerHelper.GetLastActiveController to T instead of Controller. Bug Fixes: - AxisCalibration.SetData no longer overwrites default calibration data. 1.1.39.3: Changes: - WebGL builds work again after changes to compiler in Unity 2020.2.0 to that caused builds to throw an error on launch. - Updated UFE2 integration to change auto show/hide of touch controls to toggle based on a screen touch and a controller press instead of toggling based on the presence of a controller due to problems with phantom joysticks that appear on some Android devices. - Control Mapper: Focus is now reset when calling Reset while windows are open. Bug Fixes: - ControllerMap.hardwareGuid is now correctly set for MouseMap, KeyboardMap, and CustomControllerMap. 1.1.39.2: Changes: - Missing mouse axis entries in the Unity Input Manager entries no longer cause Rewired to fail initialization, but instead log an error. API Changes: - Added public setter to InputManager_Base.dataFiles property. Bug Fixes: - Windows Standalone, Native Mouse Handling: Virtual desktop mouse delta value is no longer ~1/2 size of local mouse delta. - Fixed missing stick buttons mappings for Steam Controller (emulated) in Gamepad Template. 1.1.39.1: Bug Fixes: - Fixed IL2CPP compile errors and runtime exceptions on some platforms due to error in obfuscation introduced in 1.1.39.0. - Disabled debug logging in OSX builds in Unity 2020 and 2021 branches introduced in 1.1.39.0. 1.1.39.0: Changes: - Added Unity 2021.x branch. - Windows Native, OSX Native: Marginally improved DualShock 4 and DualSense gyro drift in computed orientation. - Changed inspector settings on Rewired_DirectInput.dll to explicitly exclude OSX platforms due to new Unity bug in Unity 2020.x including Windows DLLs on MacOS builds. - Added changes for new Xbox Wireless Controller firmware on MacOS. 1.1.38.4: Changes: - Updated Universal Fighting Engine 2 integration due to major breaking changes made in UFE 2.4.1 update. - Updated Bolt integration implementing workaround to prevent Rewired Bolt DLL containing custom units from being stripped from project in IL2CPP builds resulting in deserialization errors. - Windows 10 Universal: Added workaround for new bug in IL2CPP that causes builds to fail in Unity 2020.2.x and later. 1.1.38.3: Changes: - Updated Universal Fighting Engine 2 integration to fix issues caused by changes in UFE2 since last update. - RewiredEventSystem script execution order is now automatically set to -1000. Bug Fixes: - Editor script now enables building to Game Core platforms in Rewired_Core.dll. 1.1.38.2: Changes: - Changed WebGL native library to prevent failure in Chrome browser on MacOS 11+. - Changed WebGL OS version parsing to handle inconsistencies between browsers in how the os version is reported. - Touch Controller Disable Mouse Input When Enabled toggle now records original mouse state when component is intialized and restores this value when disabled. - Xbox One controller definition now used on Stadia instead of Xbox 360 controller definition for Xbox-compatible controllers. 1.1.38.1: Bug Fixes: - Fixed D-pad mapping bug in Sony DualSense controller definition internal driver mapping. 1.1.38.0: Changes: - Added support for Game Core Xbox platforms through additional plugin. - Added Enhanced Device Support for Sony DualSense controller (Windows and MacOS). - Changed display name of Nintendo Switch handheld controller to meet Nintendo's new naming requirements. API Changes: - Added ControllerExtensions.DualSenseExtension class. - Added ControllerExtensions.DualSenseMicrophoneLightMode enum. - Added ControllerExtensions.DualSenseOtherLightBrightness enum. - Added ControllerExtensions.DualSensePlayerLightFlags enum. New Controller Definitions: - Sony DualSense Bug Fixes: - Fixed broken ReInput.MappingHelper.GetActionElementMap function. 1.1.37.0: Changes: - Windows Standalone, Raw Input, Use XInput disabled: Implemented workaround for Steam not creating device notifications when creating or removing virtual controllers so controller changes can be detected correctly. - Export constants variable, class, and namespace sanitization now uses a blacklist instead of a whitelist so unicode characters such as non-English characters are no longer filtered out. (May lead to compiler errors if certain invalid characters are used in identifier strings.) - Bolt integration: Added PreserveAttribute to all classes to prevent Unity from stripping the classes on certain platforms. API Changes: - Added Platforms.PS4.PS4ControllerExtension.deviceHandle property. Bug Fixes: - Action Element Maps that bind to an invalid controller element are filtered out when loading Joystick Maps in Players. - Control Mapper: Null Reference Exception is no longer thrown when looking up a controller element name for an Action Element Map that maps to an invalid controller element. - MacOS Standalone, Native: When using multiple identical controllers that do not provide enough identifying information to differentiate the controller from the others and one controller is disconnected and reconnected, it will now be detected and re-appear in the Joysticks list. - Fixed bug in ComponentControls.TouchPad.pressStartDelay property causing value to always be set to float.MaxValue if set from scripting. 1.1.36.1: Changes: - Windows Standalone, Raw Input: Raw Input devices that do not appear as a HID device are no longer filtered out and are supported as controllers to support Steam virtual/remote devices when Use XInput is disabled. Bug Fixes: - UserDataStore_PlayerPrefs: Deferred Joystick assignment loading when the first Joystick is connected no longer happens if a Joystick is detected on Awake. - RewiredStandaloneInputModule: Unsubscribed to events in OnDestroy. 1.1.36.0: Changes: - Added Unity 2020 support. - Added UWP ARM64 native library (Unity 2019+, untested). - Removed GUILayer on cameras in examples to stop errors reported in Unity 2019+ - Rewired Editor: Copying an Action Category that contains Actions and copying those Actions now copies the sort order of the Actions. - Changed Player input event system to allow modifying the event listeners inside an event callback without causing issues. 1.1.35.3: Bug Fixes: - Fixed issue in RewiredStandaloneInputModule causing joystick axes to not be able to navigate the UI left or down when "Activate Action Buttons on Negative Value" is enabled in the Rewired Input Manager settings. 1.1.35.2: New Controller Definitions: - Steel Series Nimbus+ Modified Controller Definitions: - Updated Xbox One Controller definition for breaking changes caused by Windows 10 2004 update on Windows Standalone and Windows UWP platforms with Raw Input and Direct Input with Use XInput disabled. - Updated Stadia Controller definition for breaking changes caused by firmware update on all desktop platforms. 1.1.35.1: Bug Fixes: - Control Mapper changes that were supposed to be inlcuded in 1.1.35.0 are now included. 1.1.35.0: Changes: - Control Mapper: Added LanguageDataBase.GetActionCategoryName method. Changed Controller Definitions: - Ipega Bluetooth Classic GamePad, Android Fallback: Added new variant for changes made to device / firmware. - 8Bitdo SN30 Pro: Added support for changes made to firmware 1.33 and mappings for SN30 Pro+. Bug Fixes: - Control Mapper: Fixed bug introduced in 1.1.33.0 causing Action Category names to be read from Map Category instead. 1.1.34.1: Changes: - Added Rewired category to component menu. - UnityInputOverride: Made additional functions re-route to Rewired instead of passing through to UnityEngine.Input (anyKey, anyKeyDown, mousePosition, GetKey, GetKeyDown, GetKeyUp). - Windows Standalone, Raw Input: Added workarounds to try to prevent calling the Windows HidD_GetProductString function on HID devices until the device has been determined to be a supportable HID device in an attempt to avoid a 5-10 second stall when this function is called on certain problem HID devices. This issue is being reported with increasing frequency, I can only assume due to a new bug/change in a recent Windows update that affects a variety of different HID device types. This is not an issue with Rewired, it is an issue with the device, its driver, and/or Windows. This is merely an attempt to plaster over the problem so I don't keep getting this reported to me as an issue with Rewired. Bug Fixes: - Fixed bug when replacing an Action Element Map keyboard key binding with the same keyboard key causing ActionElementMap.elementIdentifierName to return a blank string. Bug was introduced in 1.1.33.0. - Fixed bug when changing Action Element Map modifier key values manually causing ActionElementMap.elementIdentifierName to not be updated. Bug was introduced in 1.1.33.0. 1.1.34.0: Changes: - Added support for horizontal mouse wheel. - Windows Standalone, Native Mouse Handling: Added remote desktop mouse support. - Added RewiredEventSystem component. - Rewired Standalone Input Module: Changed axis movement threshold to use Input Behavior Button Dead Zone. - Changed method for finding canvas position from screen position in UIPointer.cs example. API Changes: - Added MouseInputElement.Axis4 value. - Added PlayerMouse.clampToMovementArea property. - Added PlayerMouse.Definition.clampToMovementArea property. - Added Rewired.Components.PlayerMouse.clampToMovementArea property. Integration Chagnes: - PlayMaker: Added "By Axis Contribution" selection criteria option to RewiredPlayerGetFirstElementMapIdWithAction action. Bug Fixes: - Eliminated calls to EditorPrefs every frame when using Debug Information in Rewired Input Manager inspector in the editor causing heavy CPU usage. - Rewired Editor controller map bindings list no longer displays positive/negative Action names if a positive/negative name was set in the Action as an Axis-type Action then changed to a Button-type Action without clearing these values. - Fixed PlayerMouse inspector display of certain values not updating when changing them by scripting. - Touch Controls: Fixed bug in Touch Pad when Touch Pad Mode is set to Vector from Center causing vector to be calculated from the pivot point of the Rect Transform instead of the center. - Player Mouse no longer applies Absolute To Relative Sensitivity to axis values is axis Coordinate Mode is set to Absolute and Action value supplied to the axis is in absolute coordinates. - Player Mouse no longer adds Absolute axis values to the screen position but passes the value through unmodified. 1.1.33.0: Changes: - Internal refactoring that breaks compatibility with Nintendo Switch and Stadia plugins. Plugins must be updated after updating to 1.1.33.0. - Added Font Size field to DebugInformation inspector. - Control Mapper: Expanded language system to allow for translation Rewired object strings (Player names, Action names, Controller names, Controller element names, etc.). Controller Definitions: - Windows Fallback: Open VR controller definitions changed to match breaking changes to controller names returned by Unity made in an unknown version of Unity. Bug Fixes: - Fixed exception thrown by some Keyboard methods when passing new KeyCodes added in later versions of Unity. - Fixed bug in Debug Information causing Button Maps foldout to open and close simultaneously across all open Controller Maps. - Windows Fallback: Fixed Microsoft Xbox 360 Controller mappings due to undocumented breaking change made in Unity 2018.3 causing both triggers to activate when either trigger is pressed. - Control Mapper (Text Mesh Pro): Enabled Auto Size setting on Text Mesh Pro Text components on several static buttons. 1.1.32.0: Changes: - *** BREAKING CHANGE *** Changed additional time calculations to use doubles to avoid issues with time measurement precision loss when application runs for days or weeks. Some members were missed in 1.1.31.0 update and have been changed. - Added additional information to Debug Information. API Changes: - Changed return type of the following to double: - Player.GetButtonTimePressed - Player.GetButtonTimeUnpressed - Player.GetNegativeButtonTimePressed - Player.GetNegativeButtonTimeUnpressed - Player.GetAxisTimeActive - Player.GetAxisTimeInactive - Player.GetAxisRawTimeActive - Player.GetAxisRawTimeInactive - InputActionEventData.GetAxisTimeActive - InputActionEventData.GetAxisTimeInactive - InputActionEventData.GetAxisRawTimeActive - InputActionEventData.GetAxisRawTimeInactive - InputActionEventData.GetButtonTimePressed - InputActionEventData.GetButtonTimeUnpressed - InputActionEventData.GetNegativeButtonTimePressed - InputActionEventData.GetNegativeButtonTimeUnpressed Behavior Designer Integration: - Updated to reflect return value type change of time functions. Behavior Designer does not support double-precision values, so return values are cast to floats. PlayMaker Integration: - Updated to reflect return value type change of time functions. 1.1.31.0: Changes: - *** BREAKING CHANGE *** Changed all time calculations to use doubles to avoid issues with time measurement precision loss when application runs for days or weeks. All members that return time values now return a double value instead of a float value. - RewiredStandaloneInputModule: Changed to use double precision time. - Improved accuracy of identifying reconnected controllers on some platforms. API Changes: - Changed return type of the following to double: - Controller.GetButtonTimePressed - Controller.GetButtonTimeUnpressed - Controller.GetButtonLastTimePressed - Controller.GetButtonLastTimeUnpressed - Controller.GetButtonTimePressedById - Controller.GetButtonTimeUnpressedById - Controller.GetButtonLastTimePressedById - Controller.GetButtonLastTimeUnpressedById - Controller.GetLastTimeActive - Controller.GetLastTimeAnyElementChanged - Controller.GetLastTimeAnyButtonPressed - Controller.GetLastTimeAnyButtonChanged - Controller.Axis.lastTimeActive - Controller.Axis.lastTimeActiveRaw - Controller.Axis.lastTimeInactive - Controller.Axis.lastTimeInactiveRaw - Controller.Axis.lastTimeValueChanged - Controller.Axis.lastTimeValueChangedRaw - Controller.Axis.timeActive - Controller.Axis.timeActiveRaw - Controller.Axis.timeInactive - Controller.Axis.timeInactiveRaw - Controller.Button.timePressed - Controller.Button.timeUnpressed - Controller.Button.lastTimePressed - Controller.Button.lastTimeUnpressed - Controller.Button.lastTimeStateChanged - ControllerWithAxes.GetAxisTimeActive - ControllerWithAxes.GetAxisTimeInactive - ControllerWithAxes.GetAxisLastTimeActive - ControllerWithAxes.GetAxisLastTimeInactive - ControllerWithAxes.GetAxisRawTimeActive - ControllerWithAxes.GetAxisRawTimeInactive - ControllerWithAxes.GetAxisRawLastTimeActive - ControllerWithAxes.GetAxisRawLastTimeInactive - ControllerWithAxes.GetAxisTimeActiveById - ControllerWithAxes.GetAxisTimeInactiveById - ControllerWithAxes.GetAxisLastTimeActiveById - ControllerWithAxes.GetAxisLastTimeInactiveById - ControllerWithAxes.GetAxisRawTimeActiveById - ControllerWithAxes.GetAxisRawTimeInactiveById - ControllerWithAxes.GetAxisRawLastTimeActiveById - ControllerWithAxes.GetAxisRawLastTimeInactiveById - ControllerWithAxes.GetLastTimeAnyAxisActive - ControllerWithAxes.GetLastTimeAnyAxisChanged - Keyboard.GetKeyTimePressed - Keyboard.GetKeyTimeUnpressed - Keyboard.GetModifierKeyTimePressed - Keyboard.GetModifierKeyTimeUnpressed - ReInput.TimeHelper.unscaledTime Behavior Designer Integration: - Updated to reflect return value type change of time functions. Behavior Designer does not support double-precision values, so return values are cast to floats. - Added RewiredGetKeyboard - Added RewiredGetMouse - Added RewiredPlayerSetHasKeyboard PlayMaker Integration: - Updated to reflect return value type change of time functions. Corgi Engine Integration: - Removed usage of InformationAttribute due to breaking change in later versions of Corgi Engine causing compiler errors. 1.1.30.3: Bug Fixes: - OSX Native: Fixed bug causing joysticks created from HID devices with multiple logical sub devices to possibly shift around when another joystick device is connected or disconnected. 1.1.30.2: Changes: - Input is no longer blocked when application is in full-screen mode and "Ignore Input When App Not In Focus" is disabled due to problems with Steam and VR games. - OSX Native: Added support for HID devices with multiple logical sub devices (some multi-port controller adapters including Mayflash GameCube contorller adapters). 1.1.30.1: Changes: - Rewired Editor: Tools -> Export Consts last saved path reverts to the project Assets folder if the last saved path was outside the current project. - RewiredPointerInputModule: Disabling PlayerMouse by setting PlayerMouse.enabled to false or disabling the Component or GameObject if using the Component version now results in mouse exit events being sent when disabled if hovering over a Selectable. - Windows Standalone, Raw Input / Direct Input + Native Keyboard Handling: Added workaround for Steam bug. Steam overlay blocks Raw Input key up events from reaching the application causing keys held when the overlay is opened to be stuck on when the overlay is closed with the mouse. Controller Definition Changes: - Windows Fallback: Changed definitions for XInput controllers due to undocumented breaking change made in Unity 2018.3 causing both triggers to activate when either trigger is pressed. (Microsoft Xbox 360, Microsoft Xbox One, Logitech F310 (X), Logitech F710 (X), Zhidong V Plus (XI Mode). Bug Fixes: - Control Mapper (Text MeshPro): Fixed Players and Controllers headers not loading values from language. 1.1.30.0: Changes: - Windows Standalone: Added additional workarounds to prevent Raw Input mouse and keyboard registration from being reclaimed by Unity when making various sequences of calls to display and screen settings in Unity at runtime in a build. - Windows Standalone, Raw Input / Direct Input + Native Keyboard Handling: Changed Shift key handling to prevent issues with the wrong Shift key being activated or deactivated by Shift key events generated by Windows when shifting number pad keys. - Windows Standalone, Raw Input / Direct Input + Native Keyboard Handling: Changed Control key handling to filter out extranneous Control key events generated by other non-Control keys when using some non-US keyboard layouts. - Corgi Engine integration: - Updated minimum Unity version to 5.6.7f1. - Fixed PrefabUtility.DisconnectPrefabInstance deprecation warning message in Unity 2018.3+. - OSX Standalone, Native: Low-level joystick events are now discarded when the application loses focus and Unity Player -> Run in Background is disabled. API Changes: - Added Controller.Axis.pollingDeadZone property. - Added ReInput.ConfigHelper.defaultAbsoluteAxisPollingDeadZone property. - Added ReInput.ConfigHelper.defaultRelativeAxisPollingDeadZone property. Bug Fixes: - Gamepad Template: Removed duplicate Right Trigger mapping for Xbox 360 Controller. - Fixed error in Debug Information possibly displaying a different Custom Controller than is assigned to the Player. 1.1.29.4: Changes: - Increased stick dead zones on Nintendo Switch Pro Controllers on all non-Switch console platforms. Bug Fixes: - Fixed transposed Options and Menu button mappings on Stadia Controller definition on all platforms. - Fixed transposed Options and Menu button mappings in Gamepad Template for Stadia Controller. - Fixed inverted Right Stick Y mapping on Nintendo Switch Pro Controller on OSX Standalone, Native. 1.1.29.3: Changes: - Added new version of Control Mapper that uses Text Mesh Pro (Unity 2018.1+). - Windows Standalone, Raw Input / Direct Input + Native Mouse Handling: Input values are now cleared when any mouse is disconnected to prevent buttons from getting stuck on because Windows does not send button up events when a device is disconnected. - Windows Standalone, Raw Input / Direct Input + Native Keyboard Handling: Input values are now cleared when any keyboard is disconnected to prevent buttons from getting stuck on because Windows does not send button up events when a device is disconnected. - OSX, Native: Added system sleep prevention to prevent display from powering off or entering screen saver mode when using joysticks. Bug Fixes: - Fixed Start button mapping for Oculus Touch Left controller due to documentation bug in Unity documentation listing the wrong button index. 1.1.29.2: Changes: - Improved detection of rapid button taps at lower frame rates. Bug Fixes: - Rewired Editor saves prefab before exporting constants so changes made before editor recompiles are not lost. (Unity 2018.3+) - Windows Standalone, XInput, Direct Input: Fixed issue causing fast button taps to be missed at high input thread frequency and low frame rates (increased buffer size). 1.1.29.1: Changes: - Android Platforms: Added native workaround to handle keymapped and non-keymapped Sony DualShock 4 controllers (Unity 5+). - Android: Added keymapped and non-keymapped Sony DualShock 4 controller definition variants. - Amazon Fire TV: Added keymapped and non-keymapped Sony DualShock 4 controller definition variants. 1.1.29.0: Changes: - Rewired Standalone Input Module: Added Deselect If Background Clicked inspector option. - Rewired Standalone Input Module: Added Deselect Before Selecting inspector option. - Windows Standalone, XInput: Moved vibration to separate thread from input to eliminate input lag when sending vibration to a problem XInput device. - PlayStation 4: Added Aim Controller support. API Changes: - Added RewiredStandaloneInputModule.deselectIfBackgroundClicked property. - Added RewiredStandaloneInputModule.deselectBeforeSelecting property. - Added Rewired.Platforms.PS4.Ps4AimExtension class. - Added Rewired.Platforms.PS4.PS4AimMotorType enum. Controller Definitions: - Added Sony PS4 Aim Controller. Bug Fixes: - ControllerMapWithAxes.GetElementMapsWithAction: Fixed bug causing button maps to not be returned in List results method overloads. 1.1.28.0: Changes: - Added Stadia platform plugin support. - Changed editor compilation system to work with "Recompile After Finished Playing" setting in Unity editor preferences. - iOS/tvOS: Controller.deviceInstanceGuid changed to more accurately identify controllers. - Changed callback/event exception logging to log the Exception.InnerException. API Changes: - ReInput.ControllerHelper.GetJoysticks now returns an empty array when no Joysticks are found instead of null. - ReInput.ControllerHelper.GetJoystickNames now returns an empty array when no Joysticks are found instead of null. - ReInput.ControllerHelper.GetCustomControllers now returns an empty array when no Custom Controllers are found instead of null. - ReInput.ControllerHelper.GetCustomControllerNames now returns an empty array when no Custom Controllers are found instead of null. Controller Definitions: - Added Stadia Gamepad. Bug Fixes: - Fixed Null Reference Exception in RewiredPointerInputModule.GetPointerData when called with create == false and no pointer data has been created. - Fixed Null Reference Exception in RewiredPointerInputModule when removing a mouse input source from a UI event callback. 1.1.27.3: - Rebuild due to Windows Standalone IL2CPP issues in Unity 2018 branch. 1.1.27.2: Controller Definitions: - Added D-Pad buttons to Apple TV Siri Remote definition. Bug Fixes: - Fixed gamepads not working on PS4 platform due to change in 1.1.27.0. - Unity 2018.3+ (new prefab workflow): Changes are no longer lost after importing data from json or compacting ids from the Rewired Editor -> Tools menu when in "prefab edit mode" and then exiting "prefab edit mode." 1.1.27.1: Bug Fixes: - Unity 2018.3+ (new prefab workflow): Pressing "Play" in the editor immediately after changing values in the Rewired Editor while editing a prefab will no longer cause the changes to be lost. 1.1.27.0: Changes: - Windows, Raw Input / Direct Input, Native Keyboard Handling: Changed system for correcting UK and German key mappings due to issue it caused with French layout. - UserDataStore_PlayerPrefs: Added support for loading Controller Maps for recognized Joysticks that are not currently connected. - PS4: Changed value returned by Controller.name from "Gamepad" to "Controller" for gamepad controllers. API Changes: - Added ReInput.MappingHelper.GetControllerMapInstance(ControllerIdentifier controllerIdentifier...) overloads. - Added ReInput.MappingHelper.GetJoystickMapInstance(ControllerIdentifier controllerIdentifier...) overloads. - Added ReInput.MappingHelper.GetCustomControllerMapInstance(ControllerIdentifier controllerIdentifier...) overloads. - Added ReInput.MappingHelper.GetControllerMapInstanceSavedOrDefault(int playerId, Controller controller, string mapCategoryName, string layoutName) overload. - Added ReInput.MappingHelper.GetControllerMapInstanceSavedOrDefault(int playerId, ControllerIdentifier controllerIdentifier, string mapCategoryName, string layoutName) overload. - Added ReInput.MappingHelper.GetJoystickMapInstanceSavedOrDefault(int playerId, Joystick joystick, string mapCategoryName, string layoutName) overload. - Added ReInput.MappingHelper.GetJoystickMapInstanceSavedOrDefault(int playerId, ControllerIdentifier controllerIdentifier, string mapCategoryName, string layoutName) overload. - Added ReInput.MappingHelper.GetCustomControllerMapInstanceSavedOrDefault(int playerId, CustomController customController, string mapCategoryName, string layoutName) overload. - Added ReInput.MappingHelper.GetCustomControllerMapInstanceSavedOrDefault(int playerId, ControllerIdentifier controllerIdentifier, string mapCategoryName, string layoutName) overload. - Added ReInput.MappingHelper.GetKeyboardMapInstanceSavedOrDefault(int playerId, string mapCategoryName, string layoutName) overload. - Added ReInput.MappingHelper.GetMouseMapInstanceSavedOrDefault(int playerId, int mapCategoryId, int layoutId) overload. - Added ControllerIdentifier.Blank property. Bug Fixes: - Windows, Raw Input / Direct Input, Native Keyboard Handling: 4 key on French keyboard layout now returns the correct key code. - Rewired Editor: Controller Map "Copy Map" dialog now shows the "Cancel" option when copying over an existing Controller Map. 1.1.26.1: Changes: - Reverted change made in 1.1.25 due to breakage of editor stepping input support: Unity Editor, Windows Standalone, Native Keyboard Handling and/or Native Mouse Handling: Pausing runtime Play mode in the Unity Editor now clears keyboard and mouse input queue and blocks further input from being queued while paused. - Changed Control Mapper UISelectionUtility.cs for breaking API change in Unity 2019.1.5f1. - OSX, Native: Device with location id of 0 are no longer filtered out to allow support for virtual HID devices. This change may affect some multi-controller adapters such as Gamecube adapters negatively because these devices expose additional invalid HID devices with location ids of 0 which will no longer be filtered out. 1.1.26.0: Changes: - Button down events are no longer enqueued for Fixed Update when Time.timeScale is 0 to work around issues when unpausing Time.timeScale when using Fixed Update for input. - Changed installer modal dialogs to work around an extremely rare issue where installation dialog boxes will be spammed with "Cancel" requests repeatedly and infintely by Unity or some other software installed causing the "Get More Information" action to be called repeatedly which opens browser windows until the system crashes. The new behavior when this issue occurs will be that the modal box will be cancelled and skipped and the user will never even see it. This is not a bug in Rewired code that caused this issue and it could not be "fixed" and will never work properly in the rare circumstance that the user's system is behaving this way. Something outside Rewired (Unity or some other software installed) is trying to force close the modal box in the Unity Editor every frame. It's a choice between a system crash or auto-skipping the installation modal. This change is simply a cludge to at least prevent the system from crashing. - Improved performance of inspector Debug Information tool after changes made in 1.1.25.0 to remember previously open items. API Changes: - Added ComponentControls.TouchJoystick.axis2DCalibration property. - Made ComponentControls.TouchJoystick.deadZoneType property obsolete. - Added ComponentControls.TiltControl.axis2DCalibration property. - Made ComponentControls.TiltControl.deadZoneType property obsolete. - Added ComponentControls.TouchPad.horizontalAxisCalibration property. - Added ComponentControls.TouchPad.verticalAxisCalibration property. - Added ComponentControls.TouchPad.axis2DCalibration property. 1.1.25.2: Changes: - Joystick polling system now ignores Axis Calibration Sensitivity settings when polling axes so a very low Multiply sensitivity value doesn't prevent users from assigning axes to Actions. - Player.ControllerHelper.MapHelper.LoadDefaultMaps now clears Joystick Map history for Joysticks that were previously assigned to the Player but are currently not assigned at the time the method is called. This is done so that the next time a Joystick is re-assigned after LoadDefaultMaps is called while the Joystick is not present, the Joystick will load the default Joystick Maps from the Rewired Input Manager instead of loading from its history. Bug Fixes: - Controller.Button double press method overloads with no Speed argument now work correctly. - Fixed incorrect Whammy Bar axis calibration in XInput Guitar controller definition. 1.1.25.1: Changes: - Rewired Editor: Changed popup window positioning system due to non-reproducible window centering Unity editor bug reported. Popup windows are now positioned in a fixed location in the editor window. - Unity Editor, Windows Standalone, Native Keyboard Handling and/or Native Mouse Handling: Pausing runtime Play mode in the Unity Editor now clears keyboard and mouse input queue and blocks further input from being queued while paused. 1.1.25.0: Changes: - Added Unity 2019 branch. - Added Controller Map Enabler system for Controller Map enabled state management. - Added Controller Map Layout Manager system for Controller Map Layout management. - Changed UserDataStore_PlayerPrefs to utilize Controller Map Layout Manager. - Control Mapper: Made changes to support Unity 2019.1 UI system. - Control Mapper: Added support for Power axis sensitivity type. - Editor: Debug Information open foldouts now remember previous settings. - Rewired Editor: Custom Controller Type Guid. - Rewired Editor: Added Copy Map button to Controller Maps pages. - Rewired Editor: Added Default Axis Sensitivity Type option to Settings page. - Rewired Editor: Added Sensitivity settings to Custom Controller Axes. - Rewired Standalone Input Module: Removed checks of UnityEngine.Input.mousePresent because it is unreliable and reports inaccurate values on some platforms. isMouseSupported will now always return true. - Windows Standalone, Direct Input, Use XInput disabled: Added workarounds for issues with Steam-configured devices not connected or disconnected properly due to Steam's lack of sending proper device events for emulated devices. - Made various changes to Debug Information. API Changes: - Added ControllerMapEnabler class. - Added ControllerMapLayoutManager class. - Added ControllerSetSelector class. - Added ControllerIdentifier struct. - Added Interfaces.IControllerMapStore interface. - Added ReInput.ConfigHelper.defaultAxisSensitivityType property. - Added Controller.identifier property. - UserDataStore class now implements Interfaces.IControllerMapStore interface. - Added UserDataStore.SaveControllerMap method. - Added UserDataStore.LoadControllerMap method. - Added Player.ControllerHelper.MapHelper.layoutManager property. - Added Player.ControllerHelper.MapHelper.mapEnabler property. - Added ReInput.ControllerHelper.GetController(ControllerIdentifier controllerIdentifier) method overload. - Added ReInput.MappingHelper.GetControllerMapInstanceSavedOrDefault method. - Added ReInput.MappingHelper.GetJoystickMapInstanceSavedOrDefault method. - Added ReInput.MappingHelper.GetKeyboardMapInstanceSavedOrDefault method. - Added ReInput.MappingHelper.GetMouseMapInstanceSavedOrDefault method. - Added ReInput.MappingHelper.GetCustomControllerMapInstanceSavedOrDefault method. - Added ReInput.MappingHelper.GetControllerMapLayoutManagerRuleSetInstance method. - Added ReInput.MappingHelper.GetControllerMapEnablerRuleSetInstance method. New PlayMaker Actions: - RewiredConfigGetDefaultJoystickAxis2DSensitivityType - RewiredConfigSetDefaultJoystickAxis2DSensitivityType - RewiredConfigGetDefaultAxisSensitivityType - RewiredConfigSetDefaultAxisSensitivityType - RewiredControllerGetHardwareTypeGuidString - RewiredControllerGetDeviceInstanceGuidString - RewiredPlayerControllerAddedEvent - RewiredPlayerControllerRemovedEvent - RewiredPlayerLayoutManagerGetEnabled - RewiredPlayerLayoutManagerSetEnabled - RewiredPlayerLayoutManagerGetLoadFromUserDataStore - RewiredPlayerLayoutManagerSetLoadFromUserDataStore - RewiredPlayerLayoutManagerApply - RewiredPlayerLayoutManagerLoadDefaults - RewiredPlayerLayoutManagerRuleSetGetEnabled - RewiredPlayerLayoutManagerRuleSetSetEnabled - RewiredPlayerMapEnablerGetEnabled - RewiredPlayerMapEnablerSetEnabled - RewiredPlayerMapEnablerApply - RewiredPlayerMapEnablerLoadDefaults - RewiredPlayerMapEnablerRuleSetGetEnabled - RewiredPlayerMapEnablerRuleSetSetEnabled New Behvior Designer Tasks: - RewiredConfigGetDefaultJoystickAxis2DSensitivityType - RewiredConfigSetDefaultJoystickAxis2DSensitivityType - RewiredConfigGetDefaultAxisSensitivityType - RewiredConfigSetDefaultAxisSensitivityType - RewiredControllerGetHardwareTypeGuidString - RewiredControllerGetDeviceInstanceGuidString - RewiredPlayerControllerAddedEvent - RewiredPlayerControllerRemovedEvent - RewiredPlayerLayoutManagerGetEnabled - RewiredPlayerLayoutManagerSetEnabled - RewiredPlayerLayoutManagerGetLoadFromUserDataStore - RewiredPlayerLayoutManagerSetLoadFromUserDataStore - RewiredPlayerLayoutManagerApply - RewiredPlayerLayoutManagerLoadDefaults - RewiredPlayerLayoutManagerGetRuleSets - RewiredPlayerLayoutManagerGetRuleSet - RewiredPlayerMapEnablerGetEnabled - RewiredPlayerMapEnablerSetEnabled - RewiredPlayerMapEnablerGetLoadFromUserDataStore - RewiredPlayerMapEnablerSetLoadFromUserDataStore - RewiredPlayerMapEnablerApply - RewiredPlayerMapEnablerLoadDefaults - RewiredPlayerMapEnablerGetRuleSets - RewiredPlayerMapEnablerGetRuleSet - RewiredLayoutManagerRuleSetGetEnabled - RewiredLayoutManagerRuleSetSetEnabled - RewiredLayoutManagerRuleSetGetTag - RewiredLayoutManagerRuleSetSetTag - RewiredMapEnablerRuleSetGetEnabled - RewiredMapEnablerRuleSetSetEnabled - RewiredMapEnablerRuleSetGetTag - RewiredMapEnablerRuleSetSetTag New Bolt Events: - Player_ControllerAddedEvent - Player_ControllerRemovedEvent New Controller Definitions: - XInput Guitar Bug Fixes: - Windows Standalone, Raw Input, Native Mouse Handling: Mouse wheel Values smaller than the Windows constant detent tick value are now rounded up to the nearest tick. - Windows Standalone, Direct Input, Use XInput disabled: Steam-configured controllers now appear when Use XInput is diasabled. - Rewired Cinemachine Bridge: Added #if directives to make new keyword on runInEditMode property only be used in the editor to avoid compiler warnings in builds. - Windows Standalone, XInput: All non-gamepad XInput device sub types are handled as Gamepads again. 1.1.24.0: Changes: - Updated Universal Fighting Engine integration to fix issues caused by EventSystem.current being set back to the UFE Event System instead of the Rewired Event System. - Updated Universal Fighting Engine 2 integration to fix issues caused by EventSystem.current being set back to the UFE Event System instead of the Rewired Event System such as non-functioning touch controls due to recent changes in UFE2. - Updated Rex Engine integration for compatibility with Rex Engine 1.38 made various changes. - Updated PS4 support for Unity 2017 branch, 2017.4+ to replace deprecated API usage. - Rewired Editor: Added Default Joystick Sensitivity Type option. - Calibration.sensitivityCurve with time range of 0 to 1 instead of -1 to 1 will be mirrored for the negative pole of the axis automatically. API Changes: - Made PlayerSaveData constructor internal. - Moved Joystick.hardwareTypeGuid into Controller class. - Added Controller.deviceInstanceGuid. - Added Keyboard.deviceInstanceGuid property. - Added Mouse.deviceInstanceGuid property. - Added CustomController.deviceInstanceGuid property. - Added AxisSensitivity2DType enum. - Added Axis2DCalibration.axisSensitivtyType property; - Added ReInput.ConfigHelper.defaultJoystickAxis2DSensitivityType property. - Deprecated UserDataStore.OnControllerPreDiscconnect method and changed from abstract to virtual. (Spelling error.) - Added UserDataStore.OnControllerPreDisconnect method. Bug Fixes: - Fixed Joystick Axis Calibration inversion being ignored when using Axial Default Joystick Dead Zone Type Radial setting introduced in 1.1.23.0. - Fixed bug causing Player.GetAxisTimeActive, Player.GetAxisRawTimeActive to return incorrect values the first time activated. - Windows, Raw Input: Fixed incorrect reading of HID device path introduced in 1.1.22.0. This error caused multiple identical controllers handled by Raw Input to be identified as the same controller causing many issues with controller disconnection and device identification. 1.1.23.0: API Changes: - Added ControllerStatusChangedEventArgs.controller property. - Added ControllerAssignmentChangedEventArgs class. - Added Player.ControllerHelper.ControllerAddedEvent event. - Added Player.ControllerHelper.ControllerRemovedEvent event. - Added InputActionEventType.AxisActiveOrJustInactive. - Added InputActionEventType.AxisRawActiveOrJustInactive. Changes: - Windows, Raw Input: Added support for multiple top-level HID controls on a device with identical usage page, usage, and link collection information. - Removed Canvas.renderMode check and warning in Touch Controls due to an impossible to detect scenario involving runtime script compilation and Unity serialized data being cleared in an unpredicable order on objects before script recompilation begins causing Canvas.renderMode to report a value of World even if not set to World triggering the error warning. - Updated Bolt integration with new InputActionEventTypes. 1.1.22.4: Changes: - Action Element Maps in Controller Map instances obtained through ReInput.MappingHelper.GetControllerInstance and related methods now contain element identifier names and element indices. - Changed Gamepad Template mapping for Saitek P880 to map gamepad Left/Right Trigger to Button 7 and Button 8 instead of Left/Right Shoulder. 1.1.22.3: Changes: - Changed editor code to properly handle Unity 2018.3.0+ new prefab system workflow. - Added Open Prefab button to Rewired Editor when editing a prefab instance. - Control Mapper: Added Input Row Padding inspector option. - Control Mapper: Added Input Row Field Spacing inspector option. Bug Fixes: - Fixed incorrect D-Pad mappings in Thrustmaster FireStorm Dual Power mapping in Gamepad Template. - Fixed issue causing buttons to sometimes trigger a "false, true, false" sequence on OSX when using Sony DualShock 4 controller connected via USB, Native input, Fixed Update enabled in Rewired Input Manager update loop settings, and Enhanced Device Support enabled. 1.1.22.2: Bug Fixes: - Fixed issue causing compiler errors in OSX and Linux editors when building to Windows build target. This same issue also affected Unity Cloud Build. - Changed meta files on Rewired_DirectInput.dll to get around a bug in Unity 5.x where Windows libraries were attempting to be included in OSX and Linux Standalone build targets causing an exception. 1.1.22.1: Bug Fixes: - Changed importer settings on Rewired platform-specific Standalone libraries to only be included on the correct platform in Unity 2017 and Unity 2018 versions. 1.1.22.0: Changes: - Added support for IL2CPP scripting backend on Windows Standalone and OSX Standalone platforms. - Changed editor detection of Rewired installation folder for compatibility with moving Rewired into a Package Manager package. Note: Using Rewired as a Package Manager package is not recommended and support for issues encountered when doing so will not be provided. - Modified Rewired Standalone Input Module and Touch Controls to remove checks for UnityEngine.Input.touchSupported in order to allow Unity Remote touch input to work properly when run on an editor platform that does not support touch input. - Updated SimpleControlRemapping example. - Updated SimpleCombinedKeyboardMouseRemapping example. Bug Fixes: - Added D-Pad mappings to Racing Wheel Template for Logitech G29. - Editor: Fixed null reference exception thrown when linking Rewired Input Manager to Rewired Standalone Input Module inspector for the first time. - Editor: Fixed null reference exception thrown when linking Rewired Input Manager to Player Controller inspector for the first time. 1.1.21.3: Changes: - Windows Standalone, Raw Input / Direct Input + Native Keyboard Handling: Modified to detect Backquote and Quote keys on UK keyboard layout. 1.1.21.2: Bug Fixes: - DS4 battery level can no longer report negative values if invalid data is returned by hardware. 1.1.21.1: Changes: - Updated Bolt integration for Bolt 1.4.0f11. Bug Fixes: - Fixed exception thrown on PS4 and Xbox One platforms when calling ReInput.mapping.GetJoystickMapInstance(guid, ...) method. 1.1.21.0: Changes: - Added Simple Combined Keyboard Mouse Remapping example. API Changes: - Added InputMapper.mappingContext property. - Added InputMapper.Options.allowButtonsOnFullAxisAssignment property. Bug Fixes: - Fixed bug causing mouse buttons to studder intermittently on and off when polled in FixedUpdate on platforms or configurations that use UnityEngine.Input as the source of mouse input. 1.1.20.0: Changes: - Windows Standalone, XInput: Vibration output moved to the input thread to reduce performance spike when setting vibration values on some XInput devices. - Xbox One: Added logging to report when the required Gamepad.dll has not been installed for newer versions of Unity that no longer crash when an exception is thrown on an extern function call. - Xbox One: Not installing the required Gamepad.dll will no longer cause GC every frame as exceptions are thrown and swallowed. - PS4: Changed controller monitoring system to eliminate memory allocations. - Changed virtual button system used for Player.GetButtonTimedPress, Player.GetButtonDoublePress, Player.GetButtonRepeating, etc., to require a button down state to initiate the special button press type. This prevents special button state tracking from initiating after a button press that enabled the Controller Map containing the bindings to the Action being queried for the special button state. - Added Universal Fighting Engine 2 integration. - Control Mapper: Added theming for more calibration window elements. - All controller vibration is now stopped when application loses focus and Run In Backround is disabled in Unity Player settings. New Controller Definitions: - Thrustmaster FireStorm Dual Power Modified Controller Definitions: - Thrustmaster Dual Analog 3: Changed dead zone. - 3Dconnexion Space Mouse, OSX Native: Fixed incorrect axis mappings. - Nintendo Switch Handheld: Changed all element names to match terminology guidelines. - Nintendo Switch Joy-Con (L): Changed all element names to match terminology guidelines. - Nintendo Switch Joy-Con (R): Changed all element names to match terminology guidelines. - Nintendo Switch Joy-Con (Dual): Changed all element names to match terminology guidelines. - Nintendo Switch Pro Controller: Changed all element names to match terminology guidelines. - 8Bitdo NES 30 Pro: Added support for AP 40 controller. New PlayMaker Actions: - RewiredJoystickSetVibration - RewiredJoystickStopVibration New Behavior Designer Actions: - RewiredJoystickSetVibration - RewiredJoystickStopVibration Bug Fixes: - Fixed missing Tooltip attribute compiler error in Unity 4.3.x - 4.5.x. - Control Mapper: Theme custom Invert Toggle sprite now works correctly. - Fixed Player.GetButtonTimedPressUp not working when expireIn set and Activate Action Buttons on Negative Value enabled in Rewired Input Manager Settings. - Unity Windows Editor, Raw Input / Direct Input + Native Mouse Handling: Tearing the Game panel off while Rewired is running no longer causes the mouse to stop to working in Game window. - Build, Windows Standalone, Raw Input / Direct Input + Native Mouse Handling: Mouse clicks in the title bar of the application in windowed mode no longer return mouse button events in Unity 2017+. - Fixed 40 byte memory allocation per frame in Unity 2018+. - Xbox One, Mono Scripting Backend: Added workarounds for a bug in Unity's Xbox One Mono implementation causing it to throw a System Execution Engine exception (Attempting to JIT compile method) on legal code used in internal SerializedObject class used in XML and JSON handling added in 1.1.18.0. 1.1.19.9: Changes: - Mouse delta values in Fixed Update are now processed to be consistent with Update on platforms and input sources that use UnityEngine.Input as the underlying input source. Fixed Update must be enabled under Rewired Input Manager -> Settings -> Update Loops. 1.1.19.8: Bug Fixes: - Windows Standalone, Raw Input/Direct Input + Native Mouse Handling: Fixed bug introduced in 1.1.19.1 causing mouse input values to be cleared in Update after Fixed Update runs if Fixed Update is enabled in Rewired Input Manager settings. 1.1.19.7: Changes: - Universal Fighting Engine integration now blocks input from the Start action while Control Mapper is open. - Windows Standalone, XInput: Removed use of Windows LoadLibraryW function due to Sophos HitmanPro.Alert false positive malware detection due to the use of the LoadLibraryW function. Bug Fixes: - Fixed exception thrown by OnGUIHelper sometimes in edit mode. - Windows Standalone, Raw Input/Direct Input + Native Mouse Handling: Horizontal scroll wheel no longer contributes vertical scroll wheel values. 1.1.19.6: Bug Fixes: - Reverted change to Windows Standalone Native Mouse Handling made in 1.1.19.2 to fix issue causing UnityEngine.Input mouse input to stop working when the built application is launched and the application loses focus during with the Unity splash screen logo and Rewired initializes when the application is out of focus. This change caused UnityEngine.Input mouse input to stop working in Exclusive Fullscreen mode. Implemented a new workaround for the launch out of focus issue. 1.1.19.5: Bug Fixes: - Joysticks assigned to the System Player are now removed when disconnected. 1.1.19.4: Bug Fixes: - Platforms.PS4.PS4GamepadExtension.IsTouching and Platforms.PS4.PS4GamepadExtension.IsTouchingByTouchId now work correctly on the PS4 platform. 1.1.19.3: Bug Fixes: - Moved sevaral Rotorz Reorderable List classes in Rewired_Editor.dll into encapsulated namespace to avoid clashes with existing installations of Rotorz Reorderable List in project. 1.1.19.2: Changes: - Replaced Cinemachine integration with new version. Bug Fixes: - Windows Standalone, Raw Input, Native Mouse Handling: Fixed bug causing UnityEngine.Input mouse input to stop working when the built application is launched and the application loses focus during with the Unity splash screen logo and Rewired initializes when the application is out of focus. - 3dconnexion Space Mouse buttons now work when mapped from the Six DoF Controller template. 1.1.19.1: Bug Fixes: - Editor DLL: Updated Rotorz Reorderable List due to breaking changes made in Unity 2018.2 API. - Windows Standalone, Raw Input + Native Keyboard Handling: Keyboard no longer returns key values the frame after being enabled if any keys were pressed when the Keyboard was disabled. - Windows Standalone, Raw Input + Native Mouse Handling: Mouse no longer returns button values the frame after being enabled if any buttons were pressed when the Mouse was disabled. 1.1.19.0: Changes: - Input Behaviors can now be exported to constants. - Added Player Controllers. - Rewired Standalone Input Module: - Modified Repeat Delay behavior to work better with joystick input. - Added support for interacting with the UI using one or more Player Mouse. - Added PlayerPointerEventData events to send UI pointer events with Player information. - Added custom inspector. - Added Player Mouse Sprite example. - Added Player Mouse Unity UI example. - Added DualShock 4 Special Features example. - Added Cinemachine integration. - Removed Ultimate Survival integration. - Unity UI integration is now part of the base package for Unity 5+. The auto installer has been removed. - Reverted to previous behavior where mouse input is always ignored when the Unity editor window is out of focus regardless of "Ignore Input when App out of Focus" setting. - UserDataStore_PlayerPrefs now saves and loads separate Controller Map data for multiple identical controllers assigned to the same Player. API Changes: - Added ReInput.MappingHelper.GetControllerTemplateMapInstance method. - Added ControllerTemplateActionElementMap.id property. - Added ReInput.InitializedEvent event. - Added PlayerController class. - Added PlayerController.Element class. - Added PlayerController.Axis class. - Added PlayerController.Button class. - Added PlayerController.MouseWheel class. - Added PlayerController.Element.Definition class. - Added PlayerController.Axis.Definition class. - Added PlayerController.Button.Definition class. - Added PlayerController.MouseWheel.Definition class. - Added PlayerMouse class. - Added Components.PlayerController class. - Added Components.PlayerMouse class. - Added UI.IMouseInputSource interface. - Added UI.ITouchInputSource interface. - Added Integration.UnityUI.RewiredPointerInputModule class. - Added Integration.UnityUI.PlayerPointerEventData class. - Added Integration.UnityUI.PointerEventType enum. - Added many new properties and methods to Integration.UnityUI.RewiredStandaloneInputModule. - Added ComponentControls.TouchPad.touchPosition property. - Added ComponentControls.TouchPad.touchStartPosition property. - Added ControllerExtensions.IDualShock4Extension interface. - Added ControllerExtensions.IDualShock4Extension interface to ControllerExtensions.DualShock4Extension. - Added ControllerExtensions.IDualShock4Extension interface to Platforms.PS4.PS4GamepadExtension. - Added ControllerExtensions.DualShock4Extension.touchCount property. Bug Fixes: - Setting Mouse.enabled = true every frame no longer causes mouse input to stop working. - Rewired Standalone Input Module: Fixed Repeat Delay bug in Unity StandaloneInputModule source causing Repeat Delay to be ignored after pressing two orthogonal direction keys quickly in succession. - Input Behavior id is now displayed in the Rewired Editor. - Fixed transposed On Press Down and On Press Up events in Touch Pad touch control. - Inserting a new Action in a non-Default Action Category is no longer set to the Default Action Category. 1.1.18.0: Changes: - Added Input Manager mappings for Unity joysticks 12-16 in Unity 2018+. - Improved XML handling. - Added option to export data to JSON. - Added internal checks and error logging when attempting to use invalidated Rewired objects created by a Rewired Input Manager that has been destroyed or reset. - Modified Control Mapper assignment swapping system to prevent user from creating non-visible mappings under certain scenarios when a swap of a certain combination of full-axis and split-axis fields would create an additional mapping that wouldn't fit in the visual display based on the number of columns chosen for the current Controller type. The "Swap" button is no longer displayed if the swap operation would create a non-visible mapping. - Rewired Standalone Input Module: Added "Allow Touch Input" inspector option. - Added support for Flight Stick, Steering Wheel, Guitar, and Drum controller types on PS4 platform. - Added Six DoF Controller Template option to PlayMaker integration. - Added Six DoF Controller Template option to Behavior Designer integration. - Added ControllerTemplateMap system for saving and loading maps for Controller Templates as opposed to maps for specific controllers. - Modified many PlayMaker Actions removing required data storage fields when unnecessary. - Re-created Bolt integration due to breaking changes made in Bolt 1.4.0. API Changes: - Added ControllerMap.ToJsonString method. - Added ControllerMap.ToControllerTemplateMap method. - Added CalibrationMap.ToJsonString method. - Added CalibrationMap.ImportJsonString method. - Added CalibrationMap.ImportXmlString method. - Added InputBehavior.ToJsonString method. - Added InputBehavior.ImportJsonString method. - Added ControllerWithAxes.ImportCalibrationMapFromJsonString method. - Added Player.ControllerHelper.MapHelper.AddMapFromJson methods. - Added PS4ControllerExtension class. - Added ControllerMap.controller property. - Added ControllerTemplateMap class. - Added ControllerTemplateActionElementMap class. - Added ControllerTemplateActionAxisMap class. - Added ControllerTemplateActionButtonMap class. New Controller Definitions: - 3Dconnexion SpaceMouse - includes support for SpaceMouse Compact and SpaceMouse Wireless. - Sony PS4 Flight Stick - Sony PS4 Steering Wheel - Sony PS4 Guitar - Sony PS4 Drums Modified Controller Definitions: - 3Dconnexion SpaceNavigator: Changed display name to "3Dconnexion SpaceNavigator". - 3Dconnexion SpaceExplorer: Changed display name to "3Dconnexion SpaceExplorer". Bug Fixes: - Control Mapper: Fixed issue where swapping assignments on a conflict could drop the assignment instead of swapping it in certain scenarios. - Control Mapper navigation now works properly in all Canvas space modes. - Unity Editor, native input: Fixed crash when a critical exception was thrown during initialization and then subsequently re-importing scripts or DLLs in the project. - Fixed exceptions thrown when recompiling during Play mode introduced in recent update. - WebGL builds no longer log erroneous error message saying native input could not be initialized. - Enabling and disabling the Rewired Input Manager with OnGUI enabled in Settings no longer causes multiple OnGUIHelper components to be added to the Rewired Input Manager. 1.1.17.0: Changes - Windows Standalone + Direct Input, Linux Standalone + Native: Added support for 3Dconnexion Space Navigator for Notebooks and 3Dconnexion Space Explorer. - Added 6 DoF Controller Template. New Controller Defintions: - 3Dconnexion Space Explorer - 3Dconnexion SpaceMouse Module - 3Dconnexion SpacePilot Pro API Changes: - Added ISixDofControllerTemplate interface. - Added SixDofControllerTemplate class. - Added ControllerTemplateElementType.Stick6D value. Modified Controller Definitions: - 3Dconnexion Space Navigator: Added matching information for 3Dconnexion Space Navigator for Notebooks. 1.1.16.1: New Controller Defintions: - 3Dconnexion KMJ Emulator Bug Fixes: - Windows Standalone, Direct Input: Fixed major bug introduced in 1.1.16.0 that caused most joysticks to stop working when using Direct Input as the primary input source. - Saitek X52: Removed duplicate "Trigger (Stage 2)" element identifier. - Saitek X52 Pro: Removed duplicate "Trigger (Stage 2)" element identifier. - MadCatz CYBORG V1: Removed duplicate "Button 2" element identifier. - VKB Sim Gladiator MKII: Renamed misnamed duplicate "MODE2 SHIFT POV Hat Up Left" to "SHIFT POV Hat Up Left". - Logitech Driving Force GT: Removed duplicate "Brake" element identifier, removed duplicate "Return" element identifier. 1.1.16.0: Changes: - Added "Run in Edit Mode" option to allow Rewired to run outside of Play mode in the Unity editor. - Added "Allow Input in Editor Scene Views" option to Rewired Input Manager settings. - Added workaround to System.Diagnostics.Stopwatch bug on Xbox One platform. - Added Absolute to Relative Axis Sensitivty option to Input Behavior. - Keyboard and mouse input now works when the Unity editor window is not in focus and "Ignore Input When Application Not In Focus" is disabled. - Added support for 3Dconnexion Space Navigator on Windows Raw Input, Windows Direct Input, OSX Native, and Linux Native. API Changes: - Added InputManager_Base.runInEditMode property. - Added InputManager_Base.isRunningInEditMode property. New Controller Definitions: - 3Dconnexion Space Navigator Bug Fixes: - Unity 2018.1+, Windows Standalone, Exclusive Full Screen window mode, Raw Input / Direct Input + Native Mouse Handling - Chaging certain QualitySetings properties at runtime no longer causes mouse to stop working. - Control Mapper, Unity 5.2+: Input field vertical scroll bar now auto-hides properly. - Unity 2018.2.0x-ImprovedPrefabs: Fixed exception thrown by the Rewired Input Manager inspector. - Joystick Auto-Assignment now works properly when "Assign Joysticks to Playing Players Only" is disabled with "Assign Joysticks by PS4 Joy Id" enabled and a Joystick should be assigned to a non-playing Player. 1.1.15.0: Changes: - More properties on ActionElementMap can be modified directly. - Added "Activate Action Buttons on Negative Value" option the Rewired Editor. API Changes: - Added ActionElementMap.elementIdentifierId public setter. - Added ActionElementMap.actionId public setter. - Added ActionElementMap.axisRange public setter. - Added ActionElementMap.axisContribution public setter. - Added ActionElementMap.keyboardKeyCode public setter. - Added ActionElementMap.keyCode public setter. - Added ActionElementMap.modifierKey1 public setter. - Added ActionElementMap.modifierKey2 public setter. - Added ActionElementMap.modifierKey3 public setter. - Added ReInput.ConfigHelper.activateActionButtonsOnNegativeValue property. - Added TiltControl.SetRestOrientation method. New PlayMaker Actions: - RewiredGetControllerCount - RewiredConfigGetUseXInput - RewiredConfigSetUseXInput - RewiredConfigGetUpdateLoop - RewiredConfigSetUpdateLoop - RewiredConfigGetWindowsStandalonePrimaryInputSource - RewiredConfigSetWindowsStandalonePrimaryInputSource - RewiredConfigGetOSXStandalonePrimaryInputSource - RewiredConfigSetOSXStandalonePrimaryInputSource - RewiredConfigGetLinuxStandalonePrimaryInputSource - RewiredConfigSetLinuxStandalonePrimaryInputSource - RewiredConfigGetWindowsUWPPrimaryInputSource - RewiredConfigSetWindowsUWPPrimaryInputSource - RewiredConfigGetWindowsUWPSupportHIDDevices - RewiredConfigSetWindowsUWPSupportHIDDevices - RewiredConfigGetXboxOnePrimaryInputSource - RewiredConfigSetXboxOnePrimaryInputSource - RewiredConfigGetPS4PrimaryInputSource - RewiredConfigSetPS4PrimaryInputSource - RewiredConfigGetWebGLPrimaryInputSource - RewiredConfigSetWebGLPrimaryInputSource - RewiredConfigGetAlwaysUseUnityInput - RewiredConfigSetAlwaysUseUnityInput - RewiredConfigGetDisableNativeInput - RewiredConfigSetDisableNativeInput - RewiredConfigGetNativeMouseSupport - RewiredConfigSetNativeMouseSupport - RewiredConfigGetNativeKeyboardSupport - RewiredConfigSetNativeKeyboardSupport - RewiredConfigGetEnhancedDeviceSupport - RewiredConfigSetEnhancedDeviceSupport - RewiredConfigGetJoystickRefreshRate - RewiredConfigSetJoystickRefreshRate - RewiredConfigGetIgnoreInputWhenAppNotInFocus - RewiredConfigSetIgnoreInputWhenAppNotInFocus - RewiredConfigGetAndroidSupportUnknownGamepads - RewiredConfigSetAndroidSupportUnknownGamepads - RewiredConfigGetDefaultJoystickAxis2DDeadZoneType - RewiredConfigSetDefaultJoystickAxis2DDeadZoneType - RewiredConfigGetForce4WayHats - RewiredConfigSetForce4WayHats - RewiredConfigGetActivateActionButtonsOnNegativeValue - RewiredConfigSetActivateActionButtonsOnNegativeValue - RewiredConfigGetThrottleCalibrationMode - RewiredConfigSetThrottleCalibrationMode - RewiredConfigGetDeferControllerConnectedEventsOnStart - RewiredConfigSetDeferControllerConnectedEventsOnStart - RewiredConfigGetAutoAssignJoysticks - RewiredConfigSetAutoAssignJoysticks - RewiredConfigGetMaxJoysticksPerPlayer - RewiredConfigSetMaxJoysticksPerPlayer - RewiredConfigGetDistributeJoysticksEvenly - RewiredConfigSetDistributeJoysticksEvenly - RewiredConfigGetAssignJoysticksToPlayingPlayersOnly - RewiredConfigSetAssignJoysticksToPlayingPlayersOnly - RewiredConfigGetReassignJoystickToPreviousOwnerOnReconnect - RewiredConfigSetReassignJoystickToPreviousOwnerOnReconnect - RewiredConfigGetLogLevel - RewiredConfigSetLogLevel - RewiredActionElementMapSetActionId - RewiredActionElementMapSetElementIdentifierId - RewiredActionElementMapSetAxisRange - RewiredActionElementMapSetAxisContribution - RewiredActionElementMapSetKeyboardKeyCode - RewiredActionElementMapSetModifierKey1 - RewiredActionElementMapSetModifierKey2 - RewiredActionElementMapSetModifierKey3 - RewiredActionElementMapSetKeyCode - RewiredActionElementMapGetActionDescriptiveName - RewiredControllerImpelementsTemplate New Behavior Designer Tasks: - RewiredGetControllerCount - RewiredConfigGetUseXInput - RewiredConfigSetUseXInput - RewiredConfigGetUpdateLoop - RewiredConfigSetUpdateLoop - RewiredConfigGetWindowsStandalonePrimaryInputSource - RewiredConfigSetWindowsStandalonePrimaryInputSource - RewiredConfigGetOSXStandalonePrimaryInputSource - RewiredConfigSetOSXStandalonePrimaryInputSource - RewiredConfigGetLinuxStandalonePrimaryInputSource - RewiredConfigSetLinuxStandalonePrimaryInputSource - RewiredConfigGetWindowsUWPPrimaryInputSource - RewiredConfigSetWindowsUWPPrimaryInputSource - RewiredConfigGetWindowsUWPSupportHIDDevices - RewiredConfigSetWindowsUWPSupportHIDDevices - RewiredConfigGetXboxOnePrimaryInputSource - RewiredConfigSetXboxOnePrimaryInputSource - RewiredConfigGetPS4PrimaryInputSource - RewiredConfigSetPS4PrimaryInputSource - RewiredConfigGetWebGLPrimaryInputSource - RewiredConfigSetWebGLPrimaryInputSource - RewiredConfigGetAlwaysUseUnityInput - RewiredConfigSetAlwaysUseUnityInput - RewiredConfigGetDisableNativeInput - RewiredConfigSetDisableNativeInput - RewiredConfigGetNativeMouseSupport - RewiredConfigSetNativeMouseSupport - RewiredConfigGetNativeKeyboardSupport - RewiredConfigSetNativeKeyboardSupport - RewiredConfigGetEnhancedDeviceSupport - RewiredConfigSetEnhancedDeviceSupport - RewiredConfigGetJoystickRefreshRate - RewiredConfigSetJoystickRefreshRate - RewiredConfigGetIgnoreInputWhenAppNotInFocus - RewiredConfigSetIgnoreInputWhenAppNotInFocus - RewiredConfigGetAndroidSupportUnknownGamepads - RewiredConfigSetAndroidSupportUnknownGamepads - RewiredConfigGetDefaultJoystickAxis2DDeadZoneType - RewiredConfigSetDefaultJoystickAxis2DDeadZoneType - RewiredConfigGetForce4WayHats - RewiredConfigSetForce4WayHats - RewiredConfigGetActivateActionButtonsOnNegativeValue - RewiredConfigSetActivateActionButtonsOnNegativeValue - RewiredConfigGetThrottleCalibrationMode - RewiredConfigSetThrottleCalibrationMode - RewiredConfigGetDeferControllerConnectedEventsOnStart - RewiredConfigSetDeferControllerConnectedEventsOnStart - RewiredConfigGetAutoAssignJoysticks - RewiredConfigSetAutoAssignJoysticks - RewiredConfigGetMaxJoysticksPerPlayer - RewiredConfigSetMaxJoysticksPerPlayer - RewiredConfigGetDistributeJoysticksEvenly - RewiredConfigSetDistributeJoysticksEvenly - RewiredConfigGetAssignJoysticksToPlayingPlayersOnly - RewiredConfigSetAssignJoysticksToPlayingPlayersOnly - RewiredConfigGetReassignJoystickToPreviousOwnerOnReconnect - RewiredConfigSetReassignJoystickToPreviousOwnerOnReconnect - RewiredConfigGetLogLevel - RewiredConfigSetLogLevel - RewiredActionElementMapSetActionId - RewiredActionElementMapSetElementIdentifierId - RewiredActionElementMapSetAxisRange - RewiredActionElementMapSetAxisContribution - RewiredActionElementMapSetKeyboardKeyCode - RewiredActionElementMapSetModifierKey1 - RewiredActionElementMapSetModifierKey2 - RewiredActionElementMapSetModifierKey3 - RewiredActionElementMapSetKeyCode - RewiredActionElementMapGetActionDescriptiveName - RewiredControllerImpelementsTemplate Bug Fixes: - Fixed exception thrown when a Touch/Tilt control is created while no GameObject is selected and no TouchController or CustomController component exists in the scene. - Fixed extremely rare ObjectDisposedException thrown in a build when application exits on Windows Standalone + Raw Input / Direct Input. - UnityInputOverride now returns true when an Action's value is negative to be consistent with how UnityEngine.Input.GetButton functions work. 1.1.14.4: Changes: - Control Mapper: Added option to allow assignment swapping on conflicts. - Modified Rewired_Editor.dll for new method deprecations in Unity 2018.2. Controller Definitions: - Unknown, Nintendo Switch: Added mapping in case a controller is not recognized as a valid type. (This should never happen.) - Fantec Porsche 911 Turbo S: Changed display name to "Fantec Porsche 911 Wheel", all buttons renamed to "Button 1", "Button 2", etc. due to the fact that this definition applies to multiple Fantec Porsche wheels with different button mappings due to poor identifying information supplied by the devices. Added mappings for shifter. Bug Fixes: - Fixed compilation error in RewiredStandaloneInputModule.cs in Unity 4.x. - Fixed use of deprecated PS4 methods in Unity 2018 branch. 1.1.14.3: Changes: - Updated SDL2 Windows library to version 2.0.8. Bug Fixes: - Create Rewired Input Manager (Prefab) no longer throws an exception in Unity 2017+. 1.1.14.2: Changes: - Rewired Editor: Appended the word "Template" to Controller Templates in the joystick list for clarity. - Some included dev tools now use Unity UI to display information on-screen. - Added system to allow for Android version-dependent controller mappings. Controller Definitions: - Sony DualShock 4, Android: Added additional product name matching variations for wired mode connections in some versions of Android. - Sony DualShock 4, Android: Added variant for Android Oreo+. 1.1.14.1: Bug Fixes: - Fixed issue in Gamepad Template causing L/R triggers to map incorrectly when bound to individual poles of an Axis-type Action on some gamepads introduced in 1.1.13.0. - Fixed issue ActionElementMap.elementIdentifierName on Keyboard Maps returning null introduced in 1.1.13.0. 1.1.14.0: API Changes: - Added ReInput.ControllerHelper.controllerCount. - Changed ReInput.ControllerHelper.Controllers return type to IList from IEnumerable. - Deprecated ReInput.MappingHelper.GetFirstJoystickTemplateElementIdentifier method. Controller Definitions: - Microsoft Xbox 360 Controller, Linux Native: Added mapping for wireless controller on Arch Linux. 1.1.13.0: Changes: - Added Unity 2018 branch. - Added Initializer system for spawning the Rewired Input Manager in scenes as necessary. - Added option to create Rewired Input Manager prefab asset file directly. - Added data compact, import, export tools in Rewired Input Manager. - Added script-accessible runtime Controller Template system. - Added Gamepad Template UI example (Unity 5+). - Rewired Editor: Constant exporter now remembers last save location and file name. - Updated Bolt integration for compatibility with Bolt 1.3. Bolt 1.3 is now the minimum supported version. Controller Templates: - Modified all Templates for new runtime Controller Template system. - HOTAS Template: Changed "Throttle Zero Detent" element identifier names to "Throttle Min Detent". - Flight Yoke Template: Changed "Lever Zero Detent" element identifier names to "Lever Min Detent". - Dual Analog Gamepad Template: Changed name to "Gamepad", changed Left Shoulder 2 and Right Shoulder 2 to Axis type elements. Controller Definitions: - Sony DualShock 4: Added support for wireless mode on Android. API Changes: - Added Initializer class. - Added Controller.GetElementById method. - Added Controller.Element.id property. - Added Controller.Element.elementIdentifier property. - Added Controller.CompoundElement.id property. - Added Controller.CompoundElement.elementIdentifier property. - Added ControllerElementIdentifier.GetDisplayName method. - Added ControllerTemplate class. - Added ControllerTemplateElementIdentifier class. - Added ControllerTemplateElementType enum. - Added IControllerElementTarget interface. - Added IControllerTemplate interface. - Added IControllerTemplateAxisSource interface. - Added IControllerTemplateButtonSource interface. - Added IControllerTemplateElement interface. - Added IControllerTemplateButton interface. - Added IControllerTemplateAxis interface. - Added IControllerTemplateAnalogTrigger interface. - Added IControllerTemplateStick interface. - Added IControllerTemplateThumbStick interface. - Added IControllerTemplateDPad interface. - Added IControllerTemplateThrottle interface. - Added IControllerTemplateHat interface. - Added IControllerTemplateYoke interface. - Added IGamepadTemplate interface. - Added IFlightPedalsTemplate interface. - Added IFlightYokeTemplate interface. - Added IHOTASTemplate interface. - Added IRacingWheelTemplate interface. - Added GamepadTemplate class. - Added FlightPedalsTemplate class. - Added FlightYokeTemplate class. - Added HOTASTemplate class. - Added RacingWheelTemplate class. - Added ReInput.ControllerHelper.GetControllerTemplates method. - Added Player.ControllerHelper.GetControllerTemplates method. - Added Player.ControllerHelper.GetFirstControllerWithTemplate method. - Added Player.ControllerHelper.MapHelper.GetFirstElementMapWithElementTarget method. - Added Player.ControllerHelper.MapHelper.ElementMapsWithElementTarget method. - Added Player.ControllerHelper.MapHelper.GetElementMapsWithElementTarget method. - Player.ControllerHelper.MapHelper.GetAllMaps(..., List results) method overloads. - Player.ControllerHelper.MapHelper.GetAllMapsInCategory(..., List results) method overloads. - Player.ControllerHelper.MapHelper.GetMapsInCategory(..., List results) method overloads. - Player.ControllerHelper.MapHelper.GetButtonMapsWithAction(..., List results) method overloads. - Player.ControllerHelper.MapHelper.GetAxisMapsWithAction(..., List results) method overloads. - Player.ControllerHelper.MapHelper.GetElementMapsWithAction(..., List results) method overloads. - ControllerMap.GetElementMaps(..., List results) method overloads. - ControllerMap.GetElementMapsWithAction(..., List results) method overloads. - ControllerMap.GetButtonMaps(..., List results) method overloads. - ControllerMap.GetButtonMapsWithAction(..., List results) method overloads. - ControllerMapWithAxes.GetAxisMaps(..., List results) method overloads. - ControllerMapWithAxes.GetAxisMapsWithAction(..., List results) method overloads. - Added ControllerMap.GetFirstElementMapWithAction(string actionName, bool skipDisabledMaps) method overload. - Added ControllerMap.GetFirstElementMapWithElementTarget method. - Added ControllerMap.ElementMapsWithElementTarget method. - Added ControllerMap.GetElementMapsWithElementTarget method. - Added ActionElementMap.actionDescriptiveName method. - Added ActionElementMap.IsTarget method. - Added ReInput.MappingHelper.GetJoystickMapInstance(Guid joystickTypeGuid, ...) method overloads. Bug Fixes: - Constant exporter now allows periods in namespace names (for nested namespaces). - When deleting a Controller Map Category or a Layout, Player default Controller Map assignments that use the deleted Category / Layout are removed. - Controller.Elements no longer always returns null. 1.1.12.2: Controller Definitions: - Added Thrustmaster Ferrari 458 (Xbox 360 model) definition. - Added XInput Wheel definition. Bug Fixes: - Fixed joystick axis calibration bug introduced in 1.1.11.0 that made certain joystick axes such as gamepad triggers not calibrate correctly. 1.1.12.1: Controller Definitions: - 8Bitdo SN30 Pro: Added support for more connection modes on more platforms. 1.1.12.0: Changes: - Added internal logging level settings. API Changes: - Added ReInput.ConfigHelper.logLevel property. - Added Rewired.Config.LogLevelFlags enum. 1.1.11.0: Changes: - Added Throttle Calibration Mode option to switch default throttle calibration between 0-1 output range and -1 to +1 output range. - Windows Raw Input, OSX Native, Enhanced Device Support: Sony DualShock4 headphone volume is now set to a default value instead of muted on initialization. - Added -1 to +1 throttle calibration for the following controllers: CH Combat Stick USB CH Fighter Stick USB CH Flight Stick Pro CH Eclipse Yoke CH Throttle Quadrant Logitech Extreme 3D Pro Logitech WingMan Attack 2 Microsoft SideWinder 3D Pro Microsoft SideWinder Force Feedback Pro Microsoft SideWinder Joystick Microsoft SideWinder Precision 2 Microsoft SideWinder Precision Pro Saitek Cyborg Evo Saitek JI3 Cyborg 3D Gold Saitek Pro Flight Cessna Trim Wheel Saitek Pro Flight Quadrant Saitek Pro Flight Yoke Saitek ST290 Pro Saitek X45 Saitek X52 Saitek X52 Pro Saitek X-55 Rhino Throttle Saitek X-56 Rhino Throttle Thrustmaster HOTAS Warthog Throttle Thrustmaster T.Flight Hotas 4 Thrustmaster T.Flight Hotas X Thrustmaster T.Flight Stick X Thrustmaster TWCS Throttle Thrustmaster USB Joystick VKB-Sim Gladiator MKII - Added support for 8Bitdo N30 Pro and F30 Pro firmware update with product name change. API Changes: - Added Rewired.Config.ThrottleCalibrationMode enum. - Added ReInput.ConfigHelper.throttleCalibrationMode property. - Removed AxisCalibration() constructor. Bug Fixes: - All flight throttles re-calibrated for consistency across devices. - Saitek X-56 Rhino Throttle: Set default calibrated of throttles to return 0 to 1 range instead of -1 to 1 range. - CH Combat Stick USB: Set default calibrated of throttle to return 0 to 1 range instead of -1 to 1 range. - CH Fighter Stick USB: Set default calibrated of throttle to return 0 to 1 range instead of -1 to 1 range. - CH Fighter Stick Pro: Set default calibrated of throttle to return 0 to 1 range instead of -1 to 1 range. - CH Pro Throttle: Set default calibrated of throttle to return 0 to 1 range instead of -1 to 1 range. - Thrustmaster T-Flight HOTAS 4: Set default calibrated of throttle to return 0 to 1 range instead of -1 to 1 range. - Thrustmaster T-Flight HOTAS X: Set default calibrated of throttle to return 0 to 1 range instead of -1 to 1 range. - Thrustmaster T-Flight Stick X: Set default calibrated of throttle to return 0 to 1 range instead of -1 to 1 range. - Thrustmaster TWCS Throttle: Set default calibrated of throttle to return 0 to 1 range instead of -1 to 1 range. - VKB Sim Gladiator MK II: Set default calibrated of throttle to return 0 to 1 range instead of -1 to 1 range. - Control Mapper: Some UI buttons no longer stays disabled when changing theme button transition to modes other than Color Tint. 1.1.10.1: Changes: - Control Mapper: Full axis mappings are now displayed in input fields for button-type Actions. - Now logs a warning in the editor when the wrong version of Rewired is installed for the Unity editor version being used. 1.1.10.0: API Changes: - Added InputMapper.Options.isElementAllowedCallback property. - Added InputMapper.ConflictResponse.Ignore enumeration value. Bug Fixes: - Input Mapper: Fixed issue causing conflict found event responses to be ignored. 1.1.9.0: Changes: - Rewrote CustomControllersTouch example to use Unity UI instead of legacy GUI system in Unity 5+. - Added Bolt integration. API Changes: - Added Player.GetButtonDoublePressUp method. - Added Player.GetNegativeButtonDoublePressUp method. - Added Player.GetButtonSinglePressHold method. - Added Player.GetButtonSinglePressDown method. - Added Player.GetButtonSinglePressUp method. - Added Player.GetNegativeButtonSinglePressHold method. - Added Player.GetNegativeButtonSinglePressDown method. - Added Player.GetNegativeButtonSinglePressUp method. - Added InputActionEvent.ButtonDoublePressJustReleased enum value. - Added InputActionEvent.NegativeButtonDoublePressJustReleased enum value. - Added InputActionEvent.ButtonSinglePressed enum value. - Added InputActionEvent.ButtonJustSinglePressed enum value. - Added InputActionEvent.ButtonSinglePressJustReleased enum value. - Added InputActionEvent.NegativeButtonSinglePressed enum value. - Added InputActionEvent.NegativeButtonJustSinglePressed enum value. - Added InputActionEvent.NegativeButtonSinglePressJustReleased enum value. - Added InputActionEventData.GetButtonDoublePressUp method. - Added InputActionEventData.GetNegativeButtonDoublePressUp method. - Added InputActionEventData.GetButtonSinglePressHold method. - Added InputActionEventData.GetButtonSinglePressDown method. - Added InputActionEventData.GetButtonSinglePressUp method. - Added InputActionEventData.GetNegativeButtonSinglePressHold method. - Added InputActionEventData.GetNegativeButtonSinglePressDown method. - Added InputActionEventData.GetNegativeButtonSinglePressUp method. Bug Fixes: - Added workaround for intermittent null reference exception thrown due to inconsistent order of MonoBehaviour.OnApplicationFocused execution by Unity. - Fixed issue in Player.AddInputEventDelegate causing double press events with speed argument passed in to fail. - Fixed null reference exception thrown during runtime recompiling. New PlayMaker Actions: - RewiredPlayerGetButtonDoublePressUp - RewiredPlayerGetNegativeButtonDoublePressUp - RewiredPlayerGetButtonSinglePressHold - RewiredPlayerGetButtonSinglePressDown - RewiredPlayerGetButtonSinglePressUp - RewiredPlayerGetNegativeButtonSinglePressHold - RewiredPlayerGetNegativeButtonSinglePressDown - RewiredPlayerGetNegativeButtonSinglePressUp New Behavior Designer Actions: - RewiredPlayerGetButtonDoublePressUp - RewiredPlayerGetNegativeButtonDoublePressUp - RewiredPlayerGetButtonSinglePressHold - RewiredPlayerGetButtonSinglePressDown - RewiredPlayerGetButtonSinglePressUp - RewiredPlayerGetNegativeButtonSinglePressHold - RewiredPlayerGetNegativeButtonSinglePressDown - RewiredPlayerGetNegativeButtonSinglePressUp 1.1.8.3: Changes: - Removed .asmdef files due to issues with asset integration dependencies. 1.1.8.2: Bug Fixes: - Reverted changes to editor system in 1.1.8.0 which caused installation problems in Unity 5.x. 1.1.8.1: Changes: - Changes to editor code to prevent potential installation problems on some systems. Bug Fixes: - Fixed incorrect assembly names in addon .asmdef files. 1.1.8.0: Changes: - Updated RewiredStandaloneInputModule to match changes to StandaloneInputModule made in Unity 2017.1 where UI input events are not sent when the application does not have focus. - When updating Rewired in Fixed Update, Direct Input and XInput now refresh low-level input values every Fixed Update instead of only the first update per frame. - Rewired Editor: Changed name of "User Assignable" checkbox in Actions and Action Categories to "Visible in Lists." - Added .asmdef files to Rewired and all addons to compile loose scripts into libraries in preparation for the Unity 2017.3 asmdef system. - Filtered out duplicate devices on OSX and Linux when Steam is creating emulated Steam Controllers from other gamepads when using Steam's PS4, Xbox, and Generic Gamepad Configuration Support. - Windows, Direct Input w/ Use XInput disabled: Added support for Steam emulated controllers. - Added Universal Fighting Engine integration pack. API Changes: - Added ReInput.PreShutDownEvent event. - Added ReInput.ShutDownEvent event. - Added ReInput.ConfigHelper.updateLoop property. Modified Controller Definitions: - Steam Controller: Added Direct Input definition. Bug Fixes: - Windows UWP, Native w/ Use XInput: Fixed rare exception when disconnecting an XInput-compatible controller. - Windows UWP, Native: Fixed issue added in 1.1.7.8 causing it to poll for new devices every frame. - Fixed bug in ControllerMapWithAxes.ctor(ControllerMapWithAxes) constructor overload causing axis maps to not be copied. - Removed redundant Right Trigger mapping in the Xbox 360 controller Dual Analog Template definition causing the right trigger to be mapped twice. 1.1.7.9: Bug Fixes: - OSX, Native: Fixed bug preventing Steam Controller from working the primary input source is set to Native. - Sony DualShock 2 definition, Super Dual Box Pro variant: Fixed Select and Start mappings. 1.1.7.8: Changes: - Windows Raw Input, OSX Native, Windows UWP Native: Changes to support more HID devices with axes that have invalid HID report descriptors. - Added workarounds in Windows, OSX, and Linux standalone platform libraries to get around a bug in the .NET 4.6 experimental backend that caused exceptions to be thrown in the Unity editor when Assembly.GetTypes is called on these libraries. - Added workaround to get around a bug in the .NET 4.6 experimental backend preventing touch controls from working and other issues related to UnityEngine.Object null comparison. Modified Controller Definitions: - Xbox One Controller, Windows UWP Native, HID: Added support for Xbox One Controller on newest driver. - Xbox 360 Controller, Windows Raw Input / Direct Input: Adjusted trigger calibration. - Logitech F310, Logitech F710, Windows Raw Input / Direct Input: Adjusted trigger calibration. Bug Fixes: - Fixed bug introduced in 1.1.7.0 that caused Button Up events generated by physical axes to not work correctly when updating in Fixed Update was enabled. - Windows UWP: Fixed bug causing HID devices to sometimes stop working after navigating away from application and resuming. 1.1.7.7: Bug Fixes: - Platform assemblies which have been disabled in the Unity inspector are no longer loaded when using the .NET 4.6 experimental backend. 1.1.7.6: New PlayMaker Actions: RewiredLastActiveControllerChangedEvent RewiredCreateCustomController RewiredDestroyCustomController RewiredGetAnyButton RewiredGetAnyButtonDown RewiredGetAnyButtonUp RewiredGetAnyButtonPrev RewiredGetAnyButtonChanged RewiredControllerGetLastTimeActive RewiredControllerGetLastTimeAnyButtonPressed RewiredControllerGetLastTimeAnyButtonChanged RewiredControllerGetLastTimeAnyElementChanged RewiredControllerGetAnyButton RewiredControllerGetAnyButtonDown RewiredControllerGetAnyButtonUp RewiredControllerGetAnyButtonPrev RewiredControllerGetAnyButtonChanged RewiredControllerGetButton RewiredControllerGetButtonDown RewiredControllerGetButtonUp RewiredControllerGetButtonPrev RewiredControllerGetButtonChanged RewiredControllerGetButtonById RewiredControllerGetButtonDownById RewiredControllerGetButtonUpById RewiredControllerGetButtonPrevById RewiredControllerGetButtonDoublePressHold RewiredControllerGetButtonDoublePressDown RewiredControllerGetButtonDoublePressHoldById RewiredControllerGetButtonDoublePressDownById RewiredControllerGetButtonTimePressed RewiredControllerGetButtonTimeUnpressed RewiredControllerGetButtonLastTimePressed RewiredControllerGetButtonLastTimeUnpressed RewiredControllerGetButtonTimePressedById RewiredControllerGetButtonTimeUnpressedById RewiredControllerGetButtonLastTimePressedById RewiredControllerGetButtonLastTimeUnpressedById RewiredControllerGetButtonIndexById RewiredControllerGetLastTimeAnyAxisActive RewiredControllerGetLastTimeAnyAxisChanged RewiredControllerGetAxis RewiredControllerGetAxisPrev RewiredControllerGetAxisRaw RewiredControllerGetAxisRawPrev RewiredControllerGetAxisById RewiredControllerGetAxisPrevById RewiredControllerGetAxisRawById RewiredControllerGetAxisRawPrevById RewiredControllerGetAxis2D RewiredControllerGetAxis2DPrev RewiredControllerGetAxis2DRaw RewiredControllerGetAxis2DRawPrev RewiredControllerGetAxisLastTimeActive RewiredControllerGetAxisLastTimeInactive RewiredControllerGetAxisRawLastTimeActive RewiredControllerGetAxisRawLastTimeInactive RewiredControllerGetAxisTimeActive RewiredControllerGetAxisTimeInactive RewiredControllerGetAxisRawTimeActive RewiredControllerGetAxisRawTimeInactive RewiredControllerGetAxisLastTimeActiveById RewiredControllerGetAxisLastTimeInactiveById RewiredControllerGetAxisRawLastTimeActiveById RewiredControllerGetAxisRawLastTimeInactiveById RewiredControllerGetAxisRawTimeActiveById RewiredControllerGetAxisRawTimeInactiveById RewiredControllerGetAxisTimeActiveById RewiredControllerGetAxisTimeInactiveById RewiredControllerGetAxisIndexById New Behavior Designer Tasks: RewiredLastActiveControllerChangedEvent RewiredCreateCustomController RewiredDestroyCustomController RewiredGetAnyButton RewiredGetAnyButton RewiredGetAnyButtonDown RewiredGetAnyButtonUp RewiredGetAnyButtonPrev RewiredGetAnyButtonChanged RewiredControllerGetLastTimeActive RewiredControllerGetLastTimeAnyButtonPressed RewiredControllerGetLastTimeAnyElementChanged RewiredControllerGetAnyButton RewiredControllerGetAnyButtonDown RewiredControllerGetAnyButtonUp RewiredControllerGetAnyButtonPrev RewiredControllerGetAnyButtonChanged RewiredControllerGetButton RewiredControllerGetButtonDown RewiredControllerGetButtonUp RewiredControllerGetButtonPrev RewiredControllerGetButtonChanged RewiredControllerGetButtonById RewiredControllerGetButtonDownById RewiredControllerGetButtonUpById RewiredControllerGetButtonPrevById RewiredControllerGetButtonDoublePressHold RewiredControllerGetButtonDoublePressDown RewiredControllerGetButtonDoublePressHoldById RewiredControllerGetButtonDoublePressDownById RewiredControllerGetButtonTimePressed RewiredControllerGetButtonTimeUnpressed RewiredControllerGetButtonLastTimePressed RewiredControllerGetButtonLastTimeUnpressed RewiredControllerGetButtonTimePressedById RewiredControllerGetButtonTimeUnpressedById RewiredControllerGetButtonLastTimePressedById RewiredControllerGetButtonLastTimeUnpressedById RewiredControllerGetButtonIndexById RewiredControllerGetLastTimeAnyAxisActive RewiredControllerGetLastTimeAnyAxisChanged RewiredControllerGetAxis RewiredControllerGetAxisPrev RewiredControllerGetAxisRaw RewiredControllerGetAxisRawPrev RewiredControllerGetAxisById RewiredControllerGetAxisPrevById RewiredControllerGetAxisRawById RewiredControllerGetAxisRawPrevById RewiredControllerGetAxis2D RewiredControllerGetAxis2DPrev RewiredControllerGetAxis2DRaw RewiredControllerGetAxis2DRawPrev RewiredControllerGetAxisLastTimeActive RewiredControllerGetAxisLastTimeInactive RewiredControllerGetAxisRawLastTimeActive RewiredControllerGetAxisRawLastTimeInactive RewiredControllerGetAxisTimeActive RewiredControllerGetAxisTimeInactive RewiredControllerGetAxisRawTimeActive RewiredControllerGetAxisRawTimeInactive RewiredControllerGetAxisLastTimeActiveById RewiredControllerGetAxisLastTimeInactiveById RewiredControllerGetAxisRawLastTimeActiveById RewiredControllerGetAxisRawLastTimeInactiveById RewiredControllerGetAxisRawTimeActiveById RewiredControllerGetAxisRawTimeInactiveById RewiredControllerGetAxisTimeActiveById RewiredControllerGetAxisTimeInactiveById RewiredControllerGetAxisIndexById Bug Fixes: - Windows Standalone, Raw Input: Fixed rare crash. 1.1.7.5: Bug Fixes: - Windows Standalone, Direct Input: Joysticks button held down when another joystick is disconnected now retain the pressed value. 1.1.7.4: Modified Controller Definitions: - Sony DualShock 3, Windows, Raw Input & Direct Input: Fixed incorrect button and D-Pad mappings for Gasia Co.,Ltd PS3 Adapter. 1.1.7.3: Changes: - Added silent install option for headless installation. - Windows, Raw Input: Bluetooth devices without a valid serial number are no longer ignored. 1.1.7.2: Bug Fixes: - Fixed bug causing GetAxisRaw to return an incorrect +1 value for one frame when a physical button is mapped to an axis-type action and the button is released. 1.1.7.1: Bug Fixes: - Windows Standalone: Eliminated 120 byte per frame memory allocation added in 1.1.7.0. 1.1.7.0: Changes: - Modified Action system to determine button states from underlying contributing Controllers instead of calculating button states based on previous and current frame values. This changes some behavior of ButtonUp and ButtonDown events. ButtonDown events are no longer reported when a Controller is assigned to a Player while the button is already held down. ButtonUp events are no longer reported when un-assigning a Controller, or disabling a Controller or Controller Map while a button is held down. This was done to eliminated the need for frame skipping when assigning or un-assigning Controllers or enabling/disabling Controller Maps using a button on that same Controller. - Rewired Editor: Added "Defer Controller Connect Events On Start" option to Settings. - Rewired Editor: Added "Joystick Refresh Rate" option to Settings -> Windows. - Rewired Editor: Added "Coordinate Mode" option to Custom Controller Axis properties. - Rewired Editor: Changed "All" Platform Settings controls function more intuitively. - Control Mapper: Added new events for when a popup window is opened or closed and when input polling starts and stops. - Control Mapper: Added Unity events for each event and exposed them in the inspector. - Controller Templates now support mapping the same template element to multiple controller elements. - Added "Reverse Gear" to Racing Wheel template. - Added "Reverse Gear" mappings to Racing Wheel template for Logitech G25, Logitech G27, Logitech G29, Logitech G920, and Thrustmaster TH8A Shifter. - Added Rex Engine integration. - Added Ultimate Survival integration. API Changes: - Added AxisCoordinateMode enum. - Added Player.GetAxisCoordinateMode method. - Added Player.GetAxisRawCoordinateMode method. - Added Player.GetAxisCoordinateModePrev method. - Added Player.GetAxisRawCoordinateModePrev method. - Added InputActionEventData.GetAxisCoordinateMode method. - Added InputActionEventData.GetAxisRawCoordinateMode method. - Added InputActionEventData.GetAxisCoordinateModePrev method. - Added InputActionEventData.GetAxisRawCoordinateModePrev method. - Added ReInput.ConfigHelper.deferControllerConnectedEventsOnStart property. - Added ReInput.ConfigHelper.joystickRefreshRate property. - Added ControlMapper.PopupWindowClosedEvent event. - Added ControlMapper.PopupWindowOpenedEvent event. - Added ControlMapper.onScreenClosed event. - Added ControlMapper.onScreenOpened event. - Added ControlMapper.onPopupWindowClosed event. - Added ControlMapper.onPopupWindowOpened event. - Added ControlMapper.InputPollingStarted event. - Added ControlMapper.InputPollingEnded event. - Added ControlMapper.onInputPollingStarted event. - Added ControlMapper.onInputPollingEnded event. New Controller Definitions: - Logitech Driving Force GT - Thrustmaster Freestyler Bike Modified Controller Definitions: - Changed CH FlightStick Pro "Dial" name to "Throttle." - Reverted Saitek X45 "Stick Rotate" name to "Rudder." - Sony DualShock 2: Added mapping for Super Dual Box Pro adapter with default HID driver, Linux Native and OSX Native mappings. - Sony DualShock 3, Linux Native: Added mapping for Ubuntu 17.04 driver, fixed button mapping issues on Gasia Co.,Ltd PS3 Adapter mapping. Bug Fixes: - Windows Standalone, XInput: Joysticks disconnected and reconnected no longer report button values from before disconnection during the first frame after reconnection. - Windows Standalone, Direct Input: Joysticks with hats no longer return a hat value of up for few frames when plugged in at runtime. - Windows Standalone, Raw Input: Fixed memory leak when Headsoft VJoy is installed on the system. - Windows Standalone: Added workaround for Steam issue preventing Control, Shift, and Alt keys from working when using Steam Streaming. - Rewired Editor: Fixed issue preventing disabling Native Keyboard Handling in Settings -> Windows. - OSX, Native: Fixed rare issue causing some Xbox controller vibration messages to not be sent to the device. - PS4, Native: Fixed bug introduced in 1.1.6.0 causing gamepads to not be recognized. 1.1.6.0: Changes: - Changed Sony DualShock 4 controller display name and element identifier names on PS4 platform to conform to Sony's required standards. - Added Positive Name and Negative Name fields to Controller Element Identifier in Hardware Joystick Map editor. - Changed mouse axis positive/negative axis names to Mouse Left, Mouse Right, etc. - Updated Control Mapper to use positive/negative name fields. - Added FirstNonZeroValue Custom Calculation type. - Added default UI controls to Corgi Engine integration. - Corgi Engine integration: Added inventory system integration. - Corgi Engine integration: Minimum required Unity version changed to Unity 5.6.3f1. - Special platform inspector settings for Rewired_Core.dll are now checked more often that just when the build platform is changed to account for installing Rewired and/or special platform plugins with the build target already set to a special platform that is not supported by the base Unity editor. New Controller Definitions: - Logitech MOMO Racing Wheel Modified Controller Definitions: - Sony DualShock 3: Added WebGL mappings for OSX and Linux. - Microsoft Xbox One: Added OSX Native mapping for Xbox One S controller firmware 3.1.1221.0. - Added positive/negative axis names to most recognized controller axes. - Changed CH CombatStick "Dial" name to "Throttle." - Changed CH FighterStick "Dial" name to "Throttle." - Changed Saitek Heavy Equipment panel "Stick Z (Blue)" name to "Stick Rotate (Blue)." - Changed Saitek Heavy Equipment panel "Stick Z (Red)" name to "Stick Rotate (Red)." - Changed Saitek X45 "Rudder" name to "Stick Rotate." - Changed Saitek X-56 Rhino Throttle "MiniStick X", "MiniStick Y", and "MiniStick Button" to "Mini Stick X", "Mini Stick Y", and "Mini Stick Button." - Changed Thrustmaster T.16000M "Slider" name to "Throttle." API Changes: - Added ControllerElementIdentifier.positiveName property. - Added ControllerElementIdentifier.negativeName property. - Added ControllerPollingInfo.controller property. - Added ControllerPollingInfo.player property. - Added ControllerPollingInfo.elementIdentifier property. Bug Fixes: - Disabling "Ignore Input When App Not In Focus" in the Rewired Input Manager works again in the Unity editor even when "Run Application in Background" is disabled in the Unity Player settings. - Fixed missing class and method exceptions thrown during build time on Windows 8.0 Store and 8.1 Universal platforms. - Windows Standalone, Raw Input: Fixed issue preventing Microsoft Xbox One controller from working when used with "Use XInput" disabled. 1.1.5.3: Bug Fixes: - Fixed internal timer issue affecting functions that rely on real time. 1.1.5.2: Bug Fixes: - Fixed exception thrown by UserDataStore when calling ReInput.Reset or changing properties in ReInput.ConfigHelper that reset Rewired if a UserDataStore component is on the Rewired Input Manager. 1.1.5.1: Bug Fixes: - OSX Standalone, Native: Created workaround for Mono bug causing exception to be thrown when using Xbox controllers on some systems. 1.1.5.0: Changes: - Added support for MFi gamepads on Windows Standalone, Windows 8.1 Store, and Windows UWP platforms. - Added support for pressure-sensitive buttons on Windows Standalone, Windows 8.1 Store, and Windows UWP platforms. - OSX Standalone, Native: Added support for Steam emulated controllers. - Added Corgi Engine integration pack. - Control Mapper: restoreDefaultsDelegate is now called at the end of the OnRestoreDefaultsConfirmed function. New Controller Definitions: - Steam Controller (non-native) Modified Controller Definitions: - SteelSeries Stratus XL (MFi): Added Raw Input and Windows UWP mappings. - SteelSeries Nimbus (MFi): Added Raw Input and Windows UWP mappings. - Horipad Ultimate HIP-047U (MFi): Added Raw Input and Windows UWP mappings. Bug Fixes: - Windows Standalone, Native Mouse Handling: UnityEngine.Input mouse input events now work in the editor again when Maximize On Play is enabled in Unity 5.6 and Unity 2017. - OSX Standalone, Native: Created workaround for Mono bug causing exception to be thrown when using Xbox controllers on some systems. 1.1.4.2: Bug Fixes: - Windows Standalone: Fixed potential freeze on start when using Direct Input or XInput introduced in 1.1.4.0. - Fixed missing Trigger in HOTAS template for Microsoft Sidewinder Precision 2. 1.1.4.1: Changes: - Reverted change adding UWP libraries into the project by defailt instead of as an optional install due to bug in Unity 2017 causing an exception on import when .NETCore 5.0 is not installed. Bug Fixes: - ReInput.PlayerHelper.GetPlayerId(string) now returns the correct Player Id. 1.1.4.0: Changes: - Updated for Unity 2017 compatibility. - Added native support for WebGL platform. (Unity 5.0+) - Windows Standalone, Raw Input, Direct Input: Added Native Keyboard Handling option. - Windows Standalone with Native Keyboard Handling and Native Mouse Handling enabled: Disabling "Ignore Input When App Not In Focus" now allows mouse and keyboard input as well as joystick input when the application is not in focus in a build. - Added Use XInput and Support HID Devices options to Windows UWP platform settings in Rewired Input Manager. - Rewired Standalone Input Module: Changed to disable all mouse input if no physical mouse is present to match Unity's changes to the Standalone Input Module. - UserDataStore_PlayerPrefs: Added options to save and load controller assignments. - Player.GetTimedButtonPress, Player.GetTimedButtonPressUp, and negative button variants now accept a time value of 0. - Input Behavior Button Short Press Time and Button Long Press Time can now be set to a value of 0. - 8-way hats on unrecognized controllers now respect the "Force 4-way Hats" option at the Joystick level. - iOS/tvOS: Joystick.name now reports the joystick name as reported by the device instead of "Controller" for MFi controllers. - Added new SDL2 controller mappings New Controllers with Extended Support: - GameSir G3 - GameSir G3s - GameSir G3v - GameSir G3w - GameSir G4 - GameSir G4s - 8Bitdo RB8-64 N64 Controller - Microsoft SideWinder Precision 2 - TigerGame PS/PS2 Game Controller Adapter Modified Controller Definitions: - Sony DualShock 4 - Linux Native: Added variant for changes made in the Ubuntu 17.04 driver. - Linux Fallback: Dropped support for Linux Fallback due to the inability to differentiate driver versions. - Microsoft Xbox One, Linux Native, Linux Fallback: Added matching info for older firmware versions. - Microsoft Xbox One, UWP Native: Added mappings when XInput is disabled. - Microsoft Xbox 360, UWP Native: Added mappings when XInput is disabled. - Logitech F310, UWP Native: Added mappings when XInput is disabled. - Logitech F710, UWP Native: Added mappings when XInput is disabled. - 8Bitdo NES30: Combined definitions for different connection modes into new definition file. - 8Bitdo SNES30: Combined definitions for different connection modes into new definition file. - 8Bitdo NES30 Pro: Combined definitions for different connection modes into new definition file. - Sony DualShock 2: Combined definitions for different PS2 adapters into one definition file. - Added native WebGL mappings for: - Microsoft Xbox 360 Controller - Microsoft Xbox One Controller - Microsoft Xbox One S Controller - Sony DualShock 4 API Changes: - Added ReInput.ConfigManager.nativeKeyboardSupport property. - Added ReInput.ConfigManager.windowsUWPSupportHIDDevices property. - Added UserDataStore_PlayerPrefs.LoadJoystickAssignments property. - Added UserDataStore_PlayerPrefs.LoadMouseAssignments property. - Added UserDataStore_PlayerPrefs.LoadKeyboardAssignments property. - Added ReInput.ConfigHelper.webGLPrimaryInputSource property. Bug Fixes: - Windows Raw Input, Direct Input, XInput: Eliminated 500 byte memory allocations generated periodically when polling for new devices. - Unity 2017.1.b10, .NET 4.6 Experimental Scripting Backend: Fixed issue with method calls made by reflection. - Windows 10 Universal, .NET scripting backend: Fixed possible freeze during device enumeration when HID device support enabled in app manifest. - Windows 10 Universal, IL2CPP scripting backend: Fixed possible crash when closing app when HID device support enabled in app manifest. 1.1.3.0: Changes: - Added native support for Nintendo Switch platform. (Requires a separate download which can be obtained through the Nintendo Developer Portal.) - Touch Joystick: Added Stick Bounds property to allow settings the stick movement bounds to a circle or square shape. - Rewired Editor: Added option to export Action Category constants to separate classes. - Rewired Editor: Added option to export constants in all caps. API Changes: - Added Joystick.deviceInstanceGuid property. - Added Player.SetVibration method. - Added Player.GetVibration method. - Added Player.StopVibration method. - Added ControlMapper.restoreDefaultsDelegate property. - Added TouchJoystick.stickBounds property. - Added TouchJoystick.StickBounds enum. New Controller Definitions: - Mayflash N64 Controller Adapter for PC USB (2-port) - VKB-Sim Gladiator MKII Modified Controller Definitions: - Logitech G29: Updated all platforms for current firmware and driver version, added OSX and Windows fallback definitions. Bug Fixes: - Rewired Editor: Fixed bug preventing Custom Controller element properties from displaying. - Hardware Joystick Map Editor: Fixed exception thrown when setting an axis to be the source of a button in Raw Input and Direct Input. - Fixed compile error on Nintendo Switch platform. - Control Mapper: Fixed bug preventing custom entries in Language Data from working. 1.1.2.0: Changes: - Nintendo Switch Joy Con controllers changed to map +/- buttons to Center 2 on the Dual Analog Gamepad Template. New Controller Definitions: - Atari Jaguar Gamepad Bug Fixes: - Fixed bad guid format in Racing Wheel Template for Logitech G920. - Fixed incorrect default UI submit string in RewiredStandaloneInputModule.cs introduced in 1.1.0.0. - Windows, Raw Input: Fixed incorrect hat values for certain rare devices. - Rewired Editor: Fixed bug where Custom Controllers with no Axes would prevent selecting another Custom Controller in the list. - Touch Controls: Fixed editor bug causing the displayed list of Axes and Buttons in the selected Touch Control to be incorrect or fail to display when Create Custom Controller enabled on the parent Touch Controller and the Custom Controller's id does not align with the index. - Logitech G29 definition: Fixed incorrect button indices for shifter buttons. 1.1.1.0: Changes: - Windows Standalone, XInput: Eliminated periodic lag on some versions of Windows/XInput when checking for device changes. - Added "partial" keyword to all constant classes exported from the Rewired Input Manager. New Controller Definitions: - Nvidia Shield Controller (2017 model) - Nintendo Switch Joy-Con (Left) - Nintendo Switch Joy-Con (Right) - Nintendo Switch Pro Controller API Changes: - Added ComponentControls.TouchJoystick.GetValue method. - Added ComponentControls.TouchJoystick.GetRawValue method. Bug fixes: - Touch Joystick now re-centers stick to the Axis 2D calibrated zero instead of Vector2.zero. - Windows Standalone, Raw Input, Use XInput disabled: Added workaround for issue causing Xbox One controller to fail to return input when attaching Visual Studio debugger to Unity editor. - Fixed incorrect Player Id exported when exporting Players to constants from Rewired Editor. 1.1.0.0: Changes: - Added Touch Controls: Touch Controller, Touch Joystick, Touch Button, Touch Pad, Touch Region. (Requires Unity 5.0+, 5.3+ for optimal results.) - Added Tilt Control. (Requires Unity 5.0+.) - Added Input Mapper system for easier input mapping. - The Keyboard can now be assigned and removed from Players like the Mouse using the Player.controllers.hasKeyboard property. - Controllers can be enabled and disabled using the Controller.enabled property. Disabled Controllers will not produce any input. - Action Element Maps can now be enabled and disabled using the ActionElementMap.enabled property. - Windows Standalone: Added XInput as a primary input source option. - Windows Standalone, Raw Input: Joysticks now return input when the application is not in focus. (Requires "Ignore Input When App Not In Focus" option to be disabled). - Added "Exclude from Polling" option to buttons in Hardware Joystick Maps. - Added ability to export Players and Custom Controllers to constants. - Android: "Support Unknown Gamepads" option is now enabled by default. - Replaced event system for events in order to better handle exceptions thrown by event listeners and issues caused by failure to unsubscribe from events and then destroying the GameObject of the subscriber. Exceptions thrown by event listeners will no longer stop events from being sent to the remaining listeners. - Polling now returns an element identifier id for keyboard keys. - Replacing an existing Action Element Map in a Controller Map no longer creates a new Action Element Map and instead reuses the existing one. - Updated Debug Information to include new changes and display more information. - Added DevTools/DebugInformation tool for use in debugging builds. - Added DevTools/JoystickElementIdentifier scene. - Added DevTools/UnityJoystickElementIdentifier scene. - Added Press Start To Join example. - Added Press Any Button To Join example. - Added Touch Controls 1 example. - Added Touch Buttons 1 example. - Added Touch Joysticks 1 example. - Added Simple Control Remapping example. - Changed Control Remapping 1 example to use Mapping Listener and User Data Store. - Control Mapper is now an optional install offered during setup. New Controller Definitions: - Saitek X-56 Rhino Stick - Saitek X-56 Rhino Throttle - CH Products FlightStick Pro - CH Products CombatStick - Thrustmaster T.Flight Hotas 4 - Thrustmaster T.Flight Stick X - Oculus Touch - Left (Unity input only) - Oculus Touch - Right (Unity input only) - Oculus Remote (Unity input only) - OpenVR Controller - Left (Unity input only) - OpenVR Controller - Right (Unity input only) Modified Controller Definitions: - Logitech G29: Added optional Logitech G Driving Force Shifter mappings. - SteelSeries Stratus XL HID (Android/Win): Windows Raw Input, Direct Input, Fallback: Added mappings to support device with latest firmware and SteelSeries Engine installed. Controller Template Changes: - Added Left Pedal, Right Pedal, and Slide Pedals to HOTAS Template. - Added Left Pedal, Right Pedal, and Slide Pedals to Thrustmaster TWCS Throttle Template map. API Changes: - Added ReInput.ControllerHelper.DestroyCustomController method. - Added InputActionEventData.GetAxisDelta method. - Added InputActionEventData.GetAxisRawDelta method. - Added Controller.enabled property. - Added Controller.Elements property. - Added Controller.elementCount property. - Added Controller.GetElementIdentifierById method. - Added Keyboard.GetKeyCodeByButtonIndex method. - Added Keyboard.GetKeyCodeById method. - Added Keyboard.GetButtonIndexByKeyCode method. - Added Keyboard.GetElementIdentifierByKeyCode method. - Added Keyboard.GetKeyName(KeyCode key, ModifierKeyFlags flags) method overload. - Added Mouse.screenPositionPrev property. - Added Mouse.screenPositionDelta property. - Added CustomController.ClearAxisValue method. - Added CustomController.ClearAxisValueById method. - Added CustomController.ClearButtonValue method. - Added CustomController.ClearButtonValueById method. - Added ActionElementMap.enabled property. - Added ActionElementMap.controllerMap property. - Added ActionElementMap.ShowInField method. - Added AxisCalibration.applyRangeCalibration public setter. - Added InputActionEventType.ButtonRepeating enum value. - Added InputActionEventType.NegativeButtonRepeating enum value. - Added InputActionEventData.GetButtonRepeating method. - Added InputActionEventData.GetNegativeButtonRepeating method. - Added Player.GetAxisDelta method. - Added Player.GetAxisRawDelta method. - Added Player.GetButtonRepeating method. - Added Player.GetNegativeButtonRepeating method. - Added Player.ControllerHelper.hasKeyboard property. - Added Player.ControllerHelper.MapHelper.GetFirstButtonMapWithAction(ControllerType controllerType, int controllerId, int actionId, bool skipDisabledMaps) overload. - Added Player.ControllerHelper.MapHelper.GetFirstButtonMapWithAction(ControllerType controllerType, int controllerId, string actionName, bool skipDisabledMaps) overload. - Added Player.ControllerHelper.MapHelper.ButtonMapsWithAction(ControllerType controllerType, int controllerId, int actionId, bool skipDisabledMaps) overload. - Added Player.ControllerHelper.MapHelper.ButtonMapsWithAction(ControllerType controllerType, int controllerId, string actionName, bool skipDisabledMaps) overload. - Added Player.ControllerHelper.MapHelper.GetFirstAxisMapWithAction(ControllerType controllerType, int controllerId, int actionId, bool skipDisabledMaps) overload. - Added Player.ControllerHelper.MapHelper.GetFirstAxisMapWithAction(ControllerType controllerType, int controllerId, string actionName, bool skipDisabledMaps) overload. - Added Player.ControllerHelper.MapHelper.AxisMapsWithAction(ControllerType controllerType, int controllerId, int actionId, bool skipDisabledMaps) overload. - Added Player.ControllerHelper.MapHelper.AxisMapsWithAction(ControllerType controllerType, int controllerId, string actionName, bool skipDisabledMaps) overload. - Added Player.ControllerHelper.MapHelper.GetFirstElementMapWithAction(ControllerType controllerType, int controllerId, int actionId, bool skipDisabledMaps) overload. - Added Player.ControllerHelper.MapHelper.GetFirstElementMapWithAction(ControllerType controllerType, int controllerId, string actionName, bool skipDisabledMaps) overload. - Added Player.ControllerHelper.MapHelper.ElementMapsWithAction(ControllerType controllerType, int controllerId, int actionId, bool skipDisabledMaps) overload. - Added Player.ControllerHelper.MapHelper.ElementMapsWithAction(ControllerType controllerType, int controllerId, string actionName, bool skipDisabledMaps) overload. - Added Player.ControllerHelper.MapHelper.GetFirstMapInCategory(Controller controller, string categoryName) method overload. - Added Player.ControllerHelper.MapHelper.GetFirstMapInCategory(Controller controller, int categoryId) method overload. - Added Player.ControllerHelper.MapHelper.GetMap(int mapId) method overload. - Added Player.ControllerHelper.MapHelper.GetMap(Controller controller, int mapId) method overload. - Added Player.ControllerHelper.MapHelper.GetMap(Controller controller, int categoryId, int layoutId) method overload. - Added Player.ControllerHelper.MapHelper.GetMap(Controller controller, string categoryName, string layoutName) method overload. - Added Player.ControllerHelper.MapHelper.GetMaps(Controller controller) method overload. - Added Player.ControllerHelper.MapHelper.SetAllMapsEnabled(bool state, Controller controller) - Added Player.ControllerHelper.MapHelper.SetAllMapsEnabled(bool state, ControllerType controllerType, int controllerId) - Added Player.ControllerHelper.MapHelper.SetMapsEnabled(bool state, Controller controller, int categoryId) - Added Player.ControllerHelper.MapHelper.SetMapsEnabled(bool state, Controller controller, int categoryId, int layoutId) - Added Player.ControllerHelper.MapHelper.SetMapsEnabled(bool state, Controller controller, string categoryName) - Added Player.ControllerHelper.MapHelper.SetMapsEnabled(bool state, Controller controller, string categoryName, string layoutName) - Added Player.ControllerHelper.MapHelper.GetMapsInCategory method. - Added Player.ControllerHelper.MapHelper.ClearMapsInCategory method. - Added Player.ControllerHelper.MapHelper.ClearMapsInLayout method. - Added Player.ControllerHelper.MapHelper.ClearMapsForController method. - Added Player.ControllerHelper.MapHelper.ClearMapsForControllerInLayout method. - Added Player.ControllerHelper.ConflictCheckingHelper.DisableElementAssignmentConflicts method. - Added ControllerMap.DisableElementAssignmentConflicts method. - Added ControllerMap.GetFirstButtonMapMatch method. - Added ControllerMap.GetFirstElementMapMatch method. - Added ControllerMap.ForEachButtonMapMatch method. - Added ControllerMap.ForEachElementMapMatch method. - Added ControllerMap.ForEachElementAssignmentConflict method. - Added ControllerMap.SetAllButtonMapsEnabled method. - Added ControllerMap.SetAllElementMapsEnabled method. - Added ControllerMap.DisableElementAssignmentConflicts method. - Added ControllerMap.ContainsElementIdentifier method. - Added ControllerMap.ContainsKeyboardKey method. - Added ControllerMap.DoesElementAssignmentConflict(ControllerMap controllerMap, bool skipDisabledMaps) method overload. - Added ControllerMap.DoesElementAssignmentConflict(ActionElementMap actionElementMap, bool skipDisabledMaps) method overload. - Added ControllerMap.DoesElementAssignmentConflict(ElementAssignmentConflictCheck conflictCheck, bool skipDisabledMaps) method overload. - Added ControllerMap.ElementAssignmentConflicts(ControllerMap controllerMap, bool skipDisabledMaps) method overload. - Added ControllerMap.ElementAssignmentConflicts(ActionElementMap actionElementMap, bool skipDisabledMaps) method overload. - Added ControllerMap.ElementAssignmentConflicts(ElementAssignmentConflictCheck conflictCheck, bool skipDisabledMaps) method overload. - Added ControllerMap.RemoveElementAssignmentConflicts(ControllerMap controllerMap, bool skipDisabledMaps) method overload. - Added ControllerMap.RemoveElementAssignmentConflicts(ActionElementMap actionElementMap, bool skipDisabledMaps) method overload. - Added ControllerMap.RemoveElementAssignmentConflicts(ElementAssignmentConflictCheck conflictCheck, bool skipDisabledMaps) method overload. - Added ControllerMap.GetElementMaps(bool skipDisabledMaps) method overload. - Added ControllerMap.ElementMapsWithAction(int actionId, bool skipDisabledMaps) method overload. - Added ControllerMap.ElementMapsWithAction(string actionName, bool skipDisabledMaps) method overload. - Added ControllerMap.GetFirstElementMapWithAction(int actionId, bool skipDisabledMaps) method overload. - Added ControllerMap.GetFirstElementMapWithAction(string actionName, bool skipDisabledMaps) method overload. - Added ControllerMap.GetElementMapsWithAction(string actionName, bool skipDisabledMaps) method overload. - Added ControllerMap.GetElementMapsWithAction(int actionId, bool skipDisabledMaps) method overload. - Added ControllerMap.ButtonMapsWithAction(int actionId, bool skipDisabledMaps) method overload. - Added ControllerMap.ButtonMapsWithAction(string actionName, bool skipDisabledMaps) method overload. - Added ControllerMap.GetFirstButtonMapWithAction(int actionId, bool skipDisabledMaps) method overload. - Added ControllerMap.GetFirstButtonMapWithAction(string actionName, bool skipDisabledMaps) method overload. - Added ControllerMap.GetButtonMaps(bool skipDisabledMaps) method overload. - Added ControllerMap.GetButtonMapsWithAction(int actionId, bool skipDisabledMaps) method overload. - Added ControllerMap.GetButtonMapsWithAction(string actionName, bool skipDisabledMaps) method overload. - Added ControllerMap.ReplaceOrCreateElementMap(ElementAssignment elementAssignment, out ActionElementMap result) method overload. - Added ControllerMap.CreateElementMap(ElementAssignment elementAssignment, out ActionElementMap result) method overload. - Added ControllerMap.CreateElementMap(int actionId, Pole axisContribution, KeyCode keyCode, ModifierKey modifierKey1, ModifierKey modifierKey2, ModifierKey modifierKey3, out ActionElementMap result) method overload. - Added ControllerMap.CreateElementMap(int actionId, Pole axisContribution, KeyCode keyCode, ModifierKeyFlags modifierKeyFlags, out ActionElementMap result) method overload. - Added ControllerMap.CreateElementMap(int actionId, Pole axisContribution, int elementIdentifierId, ControllerElementType elementType, AxisRange axisRange, bool invert, out ActionElementMap result) method overload. - Added ControllerMap.ReplaceElementMap(ElementAssignment elementAssignment, out ActionElementMap result) method overload. - Added ControllerMap.ReplaceElementMap(int elementMapId, int actionId, Pole axisContribution, KeyCode keyCode, ModifierKey modifierKey1, ModifierKey modifierKey2, ModifierKey modifierKey3, out ActionElementMap result) method overload. - Added ControllerMap.ReplaceElementMap(int elementMapId, int actionId, Pole axisContribution, KeyCode keyCode, ModifierKeyFlags modifierKeyFlags, out ActionElementMap result) method overload. - Added ControllerMap.ReplaceElementMap(int elementMapId, int actionId, Pole axisContribution, int elementIdentifierId, ControllerElementType elementType, AxisRange axisRange, bool invert, out ActionElementMap result) method overload. - Added ControllerMapWithAxes.GetFirstAxisMapMatch method. - Added ControllerMapWithAxes.GetAxisMapMatches method. - Added ControllerMapWithAxes.ForEachAxisMapMatch method. - Added ControllerMapWithAxes.SetAllAxisMapsEnabled method. - Added ControllerMapWithAxes.DoesElementAssignmentConflict(ControllerMap controllerMap, bool skipDisabledMaps) method overload. - Added ControllerMapWithAxes.DoesElementAssignmentConflict(ActionElementMap actionElementMap, bool skipDisabledMaps) method overload. - Added ControllerMapWithAxes.DoesElementAssignmentConflict(ElementAssignmentConflictCheck conflictCheck, bool skipDisabledMaps) method overload. - Added ControllerMapWithAxes.ElementAssignmentConflicts(ControllerMap controllerMap, bool skipDisabledMaps) method overload. - Added ControllerMapWithAxes.ElementAssignmentConflicts(ActionElementMap actionElementMap, bool skipDisabledMaps) method overload. - Added ControllerMapWithAxes.ElementAssignmentConflicts(ElementAssignmentConflictCheck conflictCheck, bool skipDisabledMaps) method overload. - Added ControllerMapWithAxes.RemoveElementAssignmentConflicts(ControllerMap controllerMap, bool skipDisabledMaps) method overload. - Added ControllerMapWithAxes.RemoveElementAssignmentConflicts(ActionElementMap actionElementMap, bool skipDisabledMaps) method overload. - Added ControllerMapWithAxes.RemoveElementAssignmentConflicts(ElementAssignmentConflictCheck conflictCheck, bool skipDisabledMaps) method overload. - Added ControllerMapWithAxes.AxisMapsWithAction(string actionName, bool skipDisabledMaps) method overload. - Added ControllerMapWithAxes.AxisMapsWithAction(int actionId, bool skipDisabledMaps) method overload. - Added ControllerMapWithAxes.GetFirstAxisMapWithAction(int actionId, bool skipDisabledMaps) method overload. - Added ControllerMapWithAxes.GetFirstAxisMapWithAction(string actionName, bool skipDisabledMaps) method overload. - Added ControllerMapWithAxes.GetAxisMaps(bool skipDisabledMaps) method overload. - Added ControllerMapWithAxes.GetAxisMapsWithAction(string actionName, bool skipDisabledMaps) method overload. - Added ControllerMapWithAxes.GetAxisMapsWithAction(int actionId, bool skipDisabledMaps) method overload. - Added ControllerMapWithAxes.GetFirstElementMapWithAction(int actionId, bool skipDisabledMaps) method overload. - Added ReInput.ControllerHelper.ConflictCheckingHelper.DisableElementAssignmentConflicts method. - Added ReInput.MappingHelper.GetControllerMap method. - Added ReInput.MappingHelper.GetActionElementMap method. - Added PlayerIdPropertyAttribute. - Added Axis2DCalibration class. - Added Rewired.Platforms.WindowsStandalonePrimaryInputSource.XInput enum. - Added ElementAssignmentConflictInfo.player property. - Added ElementAssignmentConflictInfo.action property. - Added ElementAssignmentConflictInfo.controller property. - Added ElementAssignmentConflictInfo.controllerMap property. - Added ElementAssignmentConflictInfo.elementIdentifier property. - Added ElementAssignmentConflictInfo.elementMap property. - Added ElementAssignmentConflictInfo.elementDisplayName property. - Added InputMapper class. - Added InputMapper.Options class. - Added InputMapper.Context class. - Added InputMapper.EventData class. - Added InputMapper.InputMappedEventData class. - Added InputMapper.ErrorEventData class. - Added InputMapper.CanceledEventData class. - Added InputMapper.TimedOutEventData class. - Added InputMapper.StartedEventData class. - Added InputMapper.StoppedEventData class. - Added InputMapper.ConflictFoundEventData class. - Added InputMapper.ConflictResponse enum. - Removed obsolete Player.ControllerHelper.MapHelper.SetMapsEnabled(bool state, int categoryId, int layoutId) method overload. - Changed return type of Player.GetMaps(ControllerType controllerType, int controllerId) to IList from IEnumerable. - Changed return type of ControllerMap.AllMaps to IList from IEnumerable - Changed ControllerWithButtons.PollForAllButtons() to virtual. - Changed ControllerWithButtons.PollForAllButtonsDown() to virtual. - Moved ControllerWithMap functionality into Controller. Integration Changes: - PlayMaker: New Actions: RewiredControllerGetEnabled RewiredControllerSetEnabled RewiredPlayerGetFirstElementMapIdWithAction RewiredPlayerGetAxisDelta RewiredPlayerGetAxisRawDelta RewiredPlayerGetButtonRepeating RewiredPlayerGetNegativeButtonRepeating RewiredActionElementMapGetEnabled RewiredActionElementMapGetActionId RewiredActionElementMapGetElementType RewiredActionElementMapGetElementIdentifierId RewiredActionElementMapGetAxisRange RewiredActionElementMapGetInvert RewiredActionElementMapGetAxisContribution RewiredActionElementMapGetKeyboardKeyCode RewiredActionElementMapGetModifierKey1 RewiredActionElementMapGetModifierKey2 RewiredActionElementMapGetModifierKey3 RewiredActionElementMapGetAxisType RewiredActionElementMapGetModifierKeyFlags RewiredActionElementMapGetKeyCode RewiredActionElementMapGetHasModifiers RewiredActionElementMapGetElementIndex RewiredActionElementMapSetEnabled RewiredActionElementMapSetInvert - Behavior Designer: New Tasks: RewiredControllerGetEnabled RewiredControllerSetEnabled RewiredPlayerGetFirstElementMapWithAction RewiredPlayerGetAxisDelta RewiredPlayerGetAxisRawDelta RewiredPlayerGetButtonRepeating RewiredPlayerGetNegativeButtonRepeating RewiredActionElementMapGetEnabled RewiredActionElementMapGetActionId RewiredActionElementMapGetElementType RewiredActionElementMapGetElementIdentifierId RewiredActionElementMapGetAxisRange RewiredActionElementMapGetInvert RewiredActionElementMapGetAxisContribution RewiredActionElementMapGetKeyboardKeyCode RewiredActionElementMapGetModifierKey1 RewiredActionElementMapGetModifierKey2 RewiredActionElementMapGetModifierKey3 RewiredActionElementMapGetAxisType RewiredActionElementMapGetModifierKeyFlags RewiredActionElementMapGetKeyCode RewiredActionElementMapGetHasModifiers RewiredActionElementMapGetElementIndex RewiredActionElementMapSetEnabled RewiredActionElementMapSetInvert Bug Fixes: - Fixed bug causing Windows 8.1 Universal builds to always fall back to Unity input. - Fixed bug in ControllerMap.RemoveElementAssignmentConflicts(ControllerMap controllerMap) when called on a Keyboard Map. - Fixed bug in ControllerMap.RemoveElementAssignmentConflicts(ControllerMap controllerMap) which caused conflicting assigments to be removed from both controller maps. - Windows Standalone: Fixed hang on Unity 5.3+ when the application loses focus for more than 5 seconds with no mouse movement with "Run In Background" and "Exclusive Mode" set in the Unity Player properties while using Raw Input or Direct Input with Native Mouse Handling enabled. - Rewired Editor window now refreshes properly after stopping Play mode in the Editor. - Fixed bug in Rewired Editor where moving an Action to a different Action Category caused existing mappings using that Action to be cleared the next time you edited that mapping. 1.0.0.112: Changes: - Removed "Steam Raw Input Fix" option entirely due to recent changes in Steam making it non-functional. 1.0.0.111: Changes: - Disabled "Steam Raw Input Fix" by default. It is recommended that this fix be disabled on almost all games. It causes issues with the new DualShock 4 configuration support in Steam. The fix is no longer needed for using Raw Input controllers together with the Steam Controller as Steam has fixed the bug for which this workaround was created. However, the option may still be useful for some use cases. Please see Rewired Editor - Settings in the documentation for more details. - Added workaround for Steam not sending device notifications when emulated XInput devices are attached. - Added "Ignore Input When App Not In Focus" option to Rewired Input Manager Settings. - Control Mapper: When a popup window is opened and the user clicks on a non-selectable area, the currently selected UI element is no longer deselected. - Rewired Input Manager "Don't Destroy on Load" is now applied to root Game Object to avoid warnings in log if Rewired Input Manager is parented under another Game Object. API Changes: - Added ReInput.ConfigHelper.ignoreInputWhenAppNotInFocus property. New Controller Definitions: - Elecom Gamepad (JC-U3312) Bug Fixes: - Thrustmaster T.Flight Rudder Pedals: Fixed inverted mappings for L/R pedals. - Fixed issue when disconnecting and reconnecting a controller with calibrated axes that return non-zero values at rest. 1.0.0.110: New Controller Definitions: - Thrustmaster T.Flight Rudder Pedals - Thrustmaster TWCS Throttle - Logitech G920 Driving Force Racing Wheel Modified Controller Definitions: - Logitech G25, Raw Input: Added variant for when no driver is installed 1.0.0.109: Changes: - Windows Standalone, XInput: XInput library version 1.4 is now prioritized over version 1.3. - Windows Standalone, XInput: Removed Guide button detection due to possible crashes in Windows 10 developer preview builds. - Added "Don't Destroy On Load" option to Control Mapper inspector. Bug Fixes: - Fixed incorrect mapping in HOTAS template for Saitek X45 Y axis. 1.0.0.108: Bug Fixes: - Fixed exception when setting ReInput.controllers.keyboardEnabled property. - Fixed exception in ControllerMap.ReplaceElementMap when used with Custom Controller maps. - Fixed exception in ControllerMap.CreateElementMap when used with Custom Controller maps. 1.0.0.107: Changes: - Android: Supports new Xbox One S controller firmware. Bug Fixes: - ControllerMap.ReplaceElementMap now works properly with Custom Controller maps. - ControllerMap.CreateElementMap now works properly with Custom Controller maps. 1.0.0.106: Changes: - Added new native input library for Windows Store 8.1 to support non-XInput devices. - Added Enhanced Device Support for Sony DualShock 4 model CUH-ZCT2U. - UserDataStore_PlayerPrefs tries to add new default mappings for newly created Actions when loading XML saved data. New Controller Definitions: - Microsoft SideWinder Joystick API Changes: - Added ControllerMap.CreateFromXml method. - Added ReInput.MappingHelper.GetControllerMapInstance method. Bug Fixes: - Control Mapper: UI now resets when certain public properties are changed at runtime. - Fixed incorrect Controller Map category name displayed in the Debug Options in the Rewired Input Manager inspector. - Fixed bug when unchecking certain options in the Global Options window causing it to copy the Android scripting symbols regardless of the current build target platform. 1.0.0.105: Changes: - Windows Raw Input: Added support for CustomCalculation in axes and buttons in HardwareJoystickMap. - Windows Direct Input: Added support for CustomCalculation in axes and buttons in HardwareJoystickMap. - Added option to treat all hats as 4-way hats to Rewired Input Manager. - *** BREAKING CHANGE *** Changed Compound Element system so Compound Elements are defined per-device instead of per-platform. If you have created your own HardwareJoystickMap files, you must re-create all Compound Elements using the new system. - Windows Raw Input, Direct Input: Eliminated frame rate drop when connecting or disconnecting a Joystick. - Windows Raw Input: Yet more changes to work around new bugs in the latest Microsoft Xbox One driver update for Windows 10. - Windows Direct Input: Improved Bluetooth device disconnection for certain devices. - Added Use Playing Players Only option to the Rewired Standalone Input Module. - Invalid XML characters are now removed from hardware joystick name when writing ControllerMap save data to XML. - Moved export Action constants functionality to the Tools page of the Rewired Input Manager. - Added ability to export Map Category Id and Layout Id constants. API Changes: - Added Controller.Hat class. - Added CompoundControllerElementType.Hat. - Added ReInput.ConfigHelper.force4WayHats property. - Added Joystick.hatCount property. - Added Joystick.Hats property. New Controller Definitions: - Logitech WingMan Attack 2 - Logitech Attack 3 - Microsoft SideWinder 3D Pro - Microsoft SideWinder Precision Pro - Microsoft SideWinder Force Feedback Pro - Saitek ST290 Pro - Saitek Cyborg Evo Modified Controller Definitions: - All controllers with Compound Elements updated to use new system. - Added Hat Compound Elements to all controllers with hats. - Logitech G25, Raw Input: Added support for combined-axis pedal option in driver. - Logitech G27, Raw Input: Added variant for when no driver is installed, added support for combined-axis pedal option in driver. - Logitech G29, Raw Input: Added support for combined-axis pedal option in driver. - Logitech G29, Direct Input: Added mapping. 1.0.0.104: Changes: - Added option to to disable Input.location property in UnityInputOverride.cs in Global Options window. - Added option to to disable Xbox gamepad vibration support in Global Options window. - Added options to Control Mapper to allow disabling of full-axis and/or split-axis input assignment fields for axis-type Actions. Integration Changes: - PlayMaker: New Actions: RewiredGetPlayerIds RewiredGetAllPlayerIds RewiredGetJoystickIds RewiredGetCustomControllerIds RewiredIsControllerAssigned RewiredIsControllerAssignedToPlayer RewiredRemoveControllerFromAllPlayers RewiredAutoAssignJoystick RewiredAutoAssignJoysticks RewiredControllerPreDisconnectEvent RewiredPlayerGetJoystickIds RewiredPlayerGetCustomControllerIds RewiredPlayerAddController RewiredPlayerRemoveController RewiredPlayerContainsController RewiredPlayerClearControllerMaps RewiredPlayerLoadDefaultMaps RewiredPlayerLoadControllerMap RewiredPlayerRemoveControllerMap RewiredPlayerGetExcludeFromControllerAutoAssignment RewiredPlayerSetExcludeFromControllerAutoAssignment RewiredControllerGetId RewiredControllerGetName RewiredControllerGetTag RewiredControllerSetTag RewiredControllerGetHardwareName RewiredControllerGetType RewiredControllerGetIsConnected RewiredControllerGetButtonCount RewiredControllerGetHardwareIdentifier RewiredControllerGetMapTypeString RewiredControllerGetAxisCount RewiredControllerGetAxis2DCount RewiredJoystickGetUnityId RewiredJoystickGetHardwareTypeGuidString RewiredJoystickGetSupportsVibration RewiredJoystickGetVibrationMotorCount *** BREAKING CHANGES **** Changed the following Actions to use FSMEnum instead of FSMInt for controllerType property: RewiredGetLastActiveControllerType RewiredControllerConnectedEvent RewiredControllerDisconnectedEvent RewiredPlayerRemoveControllers RewiredPlayerGetLastActiveControllerType - Behavior Designer: New Tasks: RewiredGetPlayers RewiredGetAllPlayers RewiredGetJoysticks RewiredGetCustomControllers RewiredIsControllerAssigned RewiredIsControllerAssignedToPlayer RewiredRemoveControllerFromAllPlayers RewiredAutoAssignJoystick RewiredAutoAssignJoysticks RewiredControllerPreDisconnectEvent RewiredPlayerGetJoysticks RewiredPlayerGetCustomControllers RewiredPlayerAddController RewiredPlayerRemoveController RewiredPlayerContainsController RewiredPlayerClearControllerMaps RewiredPlayerLoadDefaultMaps RewiredPlayerLoadControllerMap RewiredPlayerRemoveControllerMap RewiredPlayerGetExcludeFromControllerAutoAssignment RewiredPlayerSetExcludeFromControllerAutoAssignment RewiredControllerGetId RewiredControllerGetName RewiredControllerGetTag RewiredControllerSetTag RewiredControllerGetHardwareName RewiredControllerGetType RewiredControllerGetIsConnected RewiredControllerGetButtonCount RewiredControllerGetHardwareIdentifier RewiredControllerGetMapTypeString RewiredControllerGetAxisCount RewiredControllerGetAxis2DCount RewiredJoystickGetUnityId RewiredJoystickGetHardwareTypeGuidString RewiredJoystickGetSupportsVibration RewiredJoystickGetVibrationMotorCount RewiredObjectListGetCount RewiredObjectListGetItemAtIndex RewiredObjectListForEach *** BREAKING CHANGES **** Changed the all Tasks to use ControllerType Enum instead of int for controllerType property. Bug Fixes: - When the keyboard is disabled on Android, special keyboard keys are no longer skipped when evaluating Keyboard Maps. 1.0.0.103: Modified Controller Definitions: - Sony DualShock 4: Added support for Sony DualShock 4 USB Wireless Adaptor 1.0.0.102: Changes - Added workaround for precision error on Xbox One platform when comparing if values are approximately equal. New Controller Definitions: - Added 8Bitdo SNES30 (Wired) because of firmware changes. Modified Controller Definitions: - 8Bitdo NES30 (Mode 1): Android Fallback, Linux Fallback: Changed D-Pad mappings to use axes instead of keys based on breaking changes in latest firmware version. - 8Bitdo NES30 (Mode 1): Raw Input, Windows UWP, OSX Native, OSX Fallback: Added mapping now that changes in latest firmware version work with this mode. - 8Bitdo NES30 (Mode 1): Linux Native: Added variant for new firmware changes. - 8Bitdo SNES30 (Mode 1): Android Fallback, Linux Fallback: Changed D-Pad mappings to use axes instead of keys based on breaking changes in latest firmware version. - 8Bitdo SNES30 (Mode 1): Raw Input, Windows UWP, OSX Native, OSX Fallback: Added mapping now that changes in latest firmware version work with this mode. - 8Bitdo SNES30 (Mode 1): Linux Native: Added variant for new firmware changes. 1.0.0.101: Changes: - OSX Native: Handled exception caused by using old version of 360Controller driver with Xbox One Controller and calling Joystick.SetVibration. (Documented minimum supported 360Controller version is 0.16 for vibration support on Xbox One Controller.) 1.0.0.100: Changes: - Made changes to allow Rewired to work in the Linux Unity editor. - Added workarounds for UDev issues on Slackware Linux. Bug Fixes: - Fixed incorrect Right Stick Button mapping in Dual Analog Gamepad Template for Xiaomi Wireless Game Controller. 1.0.0.99: Bug Fixes: - Fixed null reference exception when calling Player.IsCurrentInputSource introduced in 1.0.0.98. 1.0.0.98: Changes: - Added Digital Axis Simulation option in Input Behavior to disable digital axis simulation more easily. - Performance improvements. API Changes: - Added InputBehavior.digitalAxisSimulation property. - Added ReInput.ControllerHelper.AutoAssignJoystick method. - Added ReInput.ControllerHelper.AutoAssignJoysticks method. - Added ReInput.ControllerHelper.AddLastActiveControllerChangedDelegate method. - Added ReInput.ControllerHelper.RemoveLastActiveControllerChangedDelegate method. - Added ReInput.ControllerHelper.ClearLastActiveControllerChangedDelegates method. - Added Player.ControllerHelper.AddLastActiveControllerChangedDelegate method. - Added Player.ControllerHelper.RemoveLastActiveControllerChangedDelegate method. - Added Player.ControllerHelper.ClearLastActiveControllerChangedDelegates method. - Added ActiveControllerChangedDelegate delegate. - Added PlayerActiveControllerChangedDelegate delegate. Integration Changes: - Added RewiredPlayerInputBehaviorGetDigitalAxisSimulation Behavior Designer Task. - Added RewiredPlayerInputBehaviorSetDigitalAxisSimulation Behavior Designer Task. - Added RewiredPlayerInputBehaviorGetDigitalAxisSimulation PlayMaker Action. - Added RewiredPlayerInputBehaviorSetDigitalAxisSimulation PlayMaker Action. 1.0.0.97: Changes: - Added Player Actions to Rewired Input Manager Debug Information. - Added Exclude From Polling property to axes in HardwareJoystickMap - Arrow keys are now enabled on Android even when keyboard is set to disabled to allow remotes to work. - Minor optimizations. Modified Controller Definitions: - DualShock 4, Linux Native: Added SteamOS variant. - Apple Siri Remote, iOS: Excluded accelerometer and gyro axes from polling. Bug Fixes: - Windows Standalone Raw Input: Handled edge case of DualShock 4 being connected first with special feature support, then being disconnected and reconnected, and being unable to initialize special feature support due to some other process taking an exclusive lock on the device. - ControlRemappingDemo1.cs: Changed code to accomodate a Unity bug with preprocessor if. - Re-exposed Consts class due to breaking certain integration packages. - Updated Control Mapper for changes made in Unity 5.3 that broke calibration window axis buttons. 1.0.0.96: Changes: - Windows Standalone Direct Input and XInput: Improved accuracy of button down detection when frame rate is extremely low and a button is pressed and released quickly. - ReInput.ControllerHelper.GetLastActiveController is now based on controller element value changes instead of absolute element values to exclude uncalibrated non-zero-at-rest axes and always-on buttons. - ReInput.ControllerHelper.GetLastActiveController() now returns Keyboard if no last active controller is found. - Added Debug Information to Rewired Input Manager inspector. This shows a ton of useful information allowing you to visualize most objects in the system during runtime. - Minor performance optimizations. API Changes: - Added Controller.GetButtonChanged method. - Added Controller.GetAnyButtonChanged method. - Added Controller.GetLastTimeAnyButtonChanged method. - Added Controller.GetLastTimeAnyElementChanged method. - Added Controller.Button.lastTimeStateChanged property. - Added Controller.Button.justChangedState property. - Added Controller.Axis.lastTimeValueChanged property. - Added Controller.Axis.lastTimeValueChangedRaw property. - Added ControllerWithAxes.GetLastTimeAnyAxisChanged method. - Added ReInput.ControllerHelper.GetAnyButtonChanged method. - Added ReInput.ControllerHelper.GetLastActiveControllerType method. - Removed obsolete ActionElementMap.actionCategoryId property. 1.0.0.95: Changes: - Windows Standalone Raw Input: Implemented workaround to make Xbox One Controller work again after Windows 10 Anniversary Update caused the device to stop functioning when using Raw Input without XInput. - Windows Standalone Direct Input, Raw Input: Updated Xbox One Controller definition for new driver changes in Windows 10 Anniversary Update that broke trigger mappings. Now triggers will work properly with any version of the driver. - Windows Standalone Direct Input: Improved Bluetooth device detection. Now more Bluetooth controllers are recognized when using Direct Input. - Windows Standalone Direct Input: Improved controller hot-plugging assignment accuracy in certain scenarios. New Controller Definitions: - ThrustMaster T3PA Pedals Modified Controller Definitions: - Windows Fallback: Improved L/R trigger handling to accomodate both split axis and combined axis element sources because of source inconsistencies on Xbox 360 Controller, Xbox One Controller, Logitech F310 (X), Logitech F710 (X), Zidong V+ (X). Bug Fixes: - Non-calibrated CustomController values are no longer clamped -1 to 1. 1.0.0.94: Changes: - Windows Standalone Raw Input + XInput, Direct Input + XInput, Windows UWP: Made modifications to prevent Xbox One S controller from showing up as two Joysticks. - Windows Standalone XInput, Windows UWP: Xbox One controllers no longer become unresponsive to vibration changes when sending vibration commands every frame. - Added preprocessor if to eliminate warning about RuntimePlatform.OSXWebPlayer on Unity 5.4+ in ControlRemappingDemo1.cs. - Added preprocessor conditional for disabling Unity Input Override script. - Added new SDL2 gamepad mappings. - UFPS Integration: Added Set Weapon 1 - 10, Teleport Actions with default keyboard mappings to Rewired UFPS Input Manager prefab. Modified Controller Definitions: - Microsoft Xbox One Controller: - Added Xbox One S mappings for: - Windows Standalone: Raw Input, Direct Input, Fallback - OSX Standalone: Native, Fallback - Android Bug Fixes: - Fixed bug in Control Mapper theme settings causing Slider components to not reflect theme Slider settings. - Windows Standalone Raw Input: Fixed handling of HID report arrays. - OSX Standalone Native: Fixed sporadic editor crash when exiting Play mode when using the JoystickElementIdentifier too with Enhanced Device Support enabled and a DualShock 4 controller attached. 1.0.0.93: API Changes: - Added Player.GetButtonTimedPress method. - Added Player.GetButtonTimedPressDown method. - Added Player.GetButtonTimedPressUp method. - Added Player.GetNegativeButtonTimedPress method. - Added Player.GetNegativeButtonTimedPressDown method. - Added Player.GetNegativeButtonTimedPressUp method. - Added Player.GetButtonShortPress method. - Added Player.GetButtonShortPressDown method. - Added Player.GetButtonShortPressUp method. - Added Player.GetNegativeButtonShortPress method. - Added Player.GetNegativeButtonShortPressDown method. - Added Player.GetNegativeButtonShortPressUp method. - Added Player.GetButtonLongPress method. - Added Player.GetButtonLongPressDown method. - Added Player.GetButtonLongPressUp method. - Added Player.GetNegativeButtonLongPress method. - Added Player.GetNegativeButtonLongPressDown method. - Added Player.GetNegativeButtonLongPressUp method. - Added Player.AddInputEventDelegate(System.Action callback, UpdateLoopType updateLoop, InputActionEventType eventType, object[] arguments) overload. - Added Player.AddInputEventDelegate(System.Action callback, UpdateLoopType updateLoop, InputActionEventType eventType, int actionId, object[] arguments) overload. - Added Player.AddInputEventDelegate(System.Action callback, UpdateLoopType updateLoop, InputActionEventType eventType, string actionName, object[] arguments) overload. - Added InputActionEventData.GetButtonTimedPress method. - Added InputActionEventData.GetButtonTimedPressDown method. - Added InputActionEventData.GetButtonTimedPressUp method. - Added InputActionEventData.GetNegativeButtonTimedPress method. - Added InputActionEventData.GetNegativeButtonTimedPressDown method. - Added InputActionEventData.GetNegativeButtonTimedPressUp method. - Added InputActionEventData.GetButtonShortPress method. - Added InputActionEventData.GetButtonShortPressDown method. - Added InputActionEventData.GetButtonShortPressUp method. - Added InputActionEventData.GetNegativeButtonShortPress method. - Added InputActionEventData.GetNegativeButtonShortPressDown method. - Added InputActionEventData.GetNegativeButtonShortPressUp method. - Added InputActionEventData.GetButtonLongPress method. - Added InputActionEventData.GetButtonLongPressDown method. - Added InputActionEventData.GetButtonLongPressUp method. - Added InputActionEventData.GetNegativeButtonLongPress method. - Added InputActionEventData.GetNegativeButtonLongPressDown method. - Added InputActionEventData.GetNegativeButtonLongPressUp method. - Added InputActionEventData.GetButtonDoublePressHold(float speed) overload. - Added InputActionEventData.GetButtonDoublePressDown(float speed) overload. - Added InputActionEventData.GetNegativeButtonDoublePressHold(float speed) overload. - Added InputActionEventData.GetNegativeButtonDoublePressDown(float speed) overload. - Added InputActionEventType.ButtonPressedForTime. - Added InputActionEventType.ButtonJustPressedForTime. - Added InputActionEventType.ButtonPressedForTimeJustReleased. - Added InputActionEventType.ButtonShortPressed - Added InputActionEventType.ButtonJustShortPressed - Added InputActionEventType.ButtonShortPressJustReleased - Added InputActionEventType.ButtonLongPressed - Added InputActionEventType.ButtonJustLongPressed - Added InputActionEventType.ButtonLongPressJustReleased - Added InputActionEventType.NegativeButtonPressedForTime. - Added InputActionEventType.NegativeButtonJustPressedForTime. - Added InputActionEventType.NegativeButtonPressedForTimeJustReleased. - Added InputActionEventType.NegativeButtonShortPressed - Added InputActionEventType.NegativeButtonJustShortPressed - Added InputActionEventType.NegativeButtonShortPressJustReleased - Added InputActionEventType.NegativeButtonLongPressed - Added InputActionEventType.NegativeButtonJustLongPressed - Added InputActionEventType.NegativeButtonLongPressedJustReleased - Added InputBehavior.buttonShortPressTime property. - Added InputBehavior.buttonShortPressExpiresIn property. - Added InputBehavior.buttonLongPressTime property. - Added InputBehavior.buttonLongPressExpiresIn property. Integration changes: - Added PlayMaker Action for Player.GetButtonTimedPress. - Added PlayMaker Action for Player.GetButtonTimedPressDown. - Added PlayMaker Action for Player.GetButtonTimedPressUp. - Added PlayMaker Action for Player.GetNegativeButtonTimedPress. - Added PlayMaker Action for Player.GetNegativeButtonTimedPressDown. - Added PlayMaker Action for Player.GetNegativeButtonTimedPressUp. - Added PlayMaker Action for Player.GetButtonShortPress. - Added PlayMaker Action for Player.GetButtonShortPressDown. - Added PlayMaker Action for Player.GetButtonShortPressUp. - Added PlayMaker Action for Player.GetNegativeButtonShortPress. - Added PlayMaker Action for Player.GetNegativeButtonShortPressDown. - Added PlayMaker Action for Player.GetNegativeButtonShortPressUp. - Added PlayMaker Action for Player.GetButtonLongPress. - Added PlayMaker Action for Player.GetButtonLongPressDown. - Added PlayMaker Action for Player.GetButtonLongPressUp. - Added PlayMaker Action for Player.GetNegativeButtonLongPress. - Added PlayMaker Action for Player.GetNegativeButtonLongPressDown. - Added PlayMaker Action for Player.GetNegativeButtonLongPressUp. - Added duration property to PlayMaker Action RewiredPlayerSetAllControllerVibration. - Added PlayMaker Action RewiredPlayerInputBehaviorGetButtonShortPressTime. - Added PlayMaker Action RewiredPlayerInputBehaviorGetButtonShortPressExpiresIn - Added PlayMaker Action RewiredPlayerInputBehaviorGetButtonLongPressTime. - Added PlayMaker Action RewiredPlayerInputBehaviorGetButtonLongPressExpiresIn. - Added PlayMaker Action RewiredPlayerInputBehaviorSetButtonShortPressTime. - Added PlayMaker Action RewiredPlayerInputBehaviorSetButtonShortPressExpiresIn. - Added PlayMaker Action RewiredPlayerInputBehaviorSetButtonLongPressTime. - Added PlayMaker Action RewiredPlayerInputBehaviorSetButtonLongPressExpiresIn. - Added BehaviorDesigner Task for Player.GetButtonTimedPress. - Added BehaviorDesigner Task for Player.GetButtonTimedPressDown. - Added BehaviorDesigner Task for Player.GetButtonTimedPressUp. - Added BehaviorDesigner Task for Player.GetNegativeButtonTimedPress. - Added BehaviorDesigner Task for Player.GetNegativeButtonTimedPressDown. - Added BehaviorDesigner Task for Player.GetNegativeButtonTimedPressUp. - Added BehaviorDesigner Task for Player.GetButtonShortPress. - Added BehaviorDesigner Task for Player.GetButtonShortPressDown. - Added BehaviorDesigner Task for Player.GetButtonShortPressUp. - Added BehaviorDesigner Task for Player.GetNegativeButtonShortPress. - Added BehaviorDesigner Task for Player.GetNegativeButtonShortPressDown. - Added BehaviorDesigner Task for Player.GetNegativeButtonShortPressUp. - Added BehaviorDesigner Task for Player.GetButtonLongPress. - Added BehaviorDesigner Task for Player.GetButtonLongPressDown. - Added BehaviorDesigner Task for Player.GetButtonLongPressUp. - Added BehaviorDesigner Task for Player.GetNegativeButtonLongPress. - Added BehaviorDesigner Task for Player.GetNegativeButtonLongPressDown. - Added BehaviorDesigner Task for Player.GetNegativeButtonLongPressUp. - Added duration property to BehaviorDesigner Task RewiredPlayerSetAllControllerVibration. - Added BehaviorDesigner Task RewiredPlayerInputBehaviorGetButtonShortPressTime. - Added BehaviorDesigner Task RewiredPlayerInputBehaviorGetButtonShortPressExpiresIn. - Added BehaviorDesigner Task RewiredPlayerInputBehaviorGetButtonLongPressTime. - Added BehaviorDesigner Task RewiredPlayerInputBehaviorGetButtonLongPressExpiresIn. - Added BehaviorDesigner Task RewiredPlayerInputBehaviorSetButtonShortPressTime. - Added BehaviorDesigner Task RewiredPlayerInputBehaviorSetButtonShortPressExpiresIn. - Added BehaviorDesigner Task RewiredPlayerInputBehaviorSetButtonLongPressTime. - Added BehaviorDesigner Task RewiredPlayerInputBehaviorSetButtonLongPressExpiresIn. Bug Fixes: - Fixed bug in InputActionEventData.actionName introduced in 1.0.0.91 that causes an exception to be thrown or returns the incorrect Action name. - Fixed bug in InputActionEventData.actionDescriptiveName introduced in 1.0.0.91 that causes an exception to be thrown or returns the incorrect Action descriptive name. 1.0.0.92: Changes: - Added ability to set Joystick vibration with a timeout. API Changes: - Added Joystick.SetVibration(int motorIndex, float motorLevel, float duration) overload. - Added Joystick.SetVibration(int motorIndex, float motorLevel, float duration, bool stopOtherMotors) overload. - Added Joystick.SetVibration(float leftMotorLevel, float rightMotorSpeed, float leftMotorDuration, float rightMotorDuration) overload. - Added IControllerVibrator.SetVibration(int motorIndex, float motorLevel, float duration) overload. - Added IControllerVibrator.SetVibration(int motorIndex, float motorLevel, float duration, bool stopOtherMotors) overload. - Added XboxOneGamepadExtension.SetVibration(int motorIndex, float motorLevel, float duration) overload. - Added XboxOneGamepadExtension.SetVibration(int motorIndex, float motorLevel, float duration, bool stopOtherMotors) overload. - Added XboxOneGamepadExtension.SetVibration(XboxOneGamepadMotorType motor, float motorLevel, float duration) overload. - Added XboxOneGamepadExtension.SetVibration(XboxOneGamepadMotorType motor, float motorLevel, float duration, bool stopOtherMotors) overload. - Added DualShock4ControllerExtension.SetVibration(int motorIndex, float motorLevel, float duration) overload. - Added DualShock4ControllerExtension.SetVibration(int motorIndex, float motorLevel, float duration, bool stopOtherMotors) overload. - Added DualShock4ControllerExtension.SetVibration(DualShock4MotorType motor, float motorLevel, float duration) overload. - Added DualShock4ControllerExtension.SetVibration(DualShock4MotorType motor, float motorLevel, float duration, bool stopOtherMotors) overload. - Added DualShock4ControllerExtension.SetVibration(float leftMotorLevel, float rightMotorLevel, float leftMotorDuration, float rightMotorDuration) overload. - Added PS4GamepadExtension.SetVibration(int motorIndex, float motorLevel, float duration) overload. - Added PS4GamepadExtension.SetVibration(int motorIndex, float motorLevel, float duration, bool stopOtherMotors) overload. - Added PS4GamepadExtension.SetVibration(DualShock4MotorType motor, float motorLevel, float duration) overload. - Added PS4GamepadExtension.SetVibration(DualShock4MotorType motor, float motorLevel, float duration, bool stopOtherMotors) overload. - Added PS4GamepadExtension.SetVibration(float leftMotorLevel, float rightMotorLevel, float leftMotorDuration, float rightMotorDuration) overload. Bug Fixes: - Fixed transposed left/right trigger motors in XboxOneGamepadExtension.SetVibration and XboxOneGamepadExtension.GetVibration. 1.0.0.91: Changes: - OSX Native: Added vibration support for XInput-compatible controllers. (360Controller driver required.) - OSX Native: Added Enhanced Device Support. Now all the special features of the Sony DualShock 4 work on OSX (wired only). - Updated included SDL2 libraries to version 2.0.4. Note: Libraries must be reinstalled from the menu Rewired -> Setup -> Install Libraries -> SDL2. - Added option to use the Ouya Everywhere SDK on Razer Forge TV to the Global Options. - Made minor optimizations to Action lookups. Modified Controller Definitions: - Xbox 360 Controller - Added Guide button to OSX Native and OSX Fallback definitions. - Xbox One Controller - Added OSX Native definition. (Separated from Xbox 360 Controller definition.) - Xbox One Controller - Added OSX Fallback definition. Bug Fixes: - Fixed exception thrown when SDL2 used as the input source on Windows, OSX, and Linux. - OSX SDL2: SDL2 library update to 2.0.4 fixes a bug which could cause each XInput-compatible controller to appear multiple times if attached at runtime along with other controllers. - Windows Standalone: Fixed issue where setting vibration every frame on a DualShock 4 caused a drop in frame rate. - Windows Standalone: Fixed crash when using Logitech MX Anywhere 2 mouse via Bluetooth. - Windows Standalone: DualShock4 D-Pad no longer returns Up for a few frames after runtime start and device connection. - Linux Standalone: Joystick.StopVibration now stops vibration when called. 1.0.0.90: API Changes: - Added ElementAssignmentConflictInfo.controllerMapId property. - Added ElementAssignmentConflictInfo.actionId property. - Changed ElementAssignmentConflictInfo contstructor to require controllerMapId and actionId parameters. New Controller Definitions: - Thrustmaster T500 RS Racing Wheel - Pro Flight Trainer PUMA Changed Controller Definitions: - Split Thrustmaster FFB Wheel into its own definition out of the Thurstmaster T300 RS because multiple Thrustmaster wheels identify themselves as Thrustmaster FFB Wheel when no driver is installed or using the wheel on OSX, Linux, Android, etc. Bug Fixes: - Reverted Windows Standalone mouse fix from 1.0.0.89 when in the Unity Editor due to editor crashes on some systems. The fix still remains for game builds. 1.0.0.89: Changes: - When loading Controller Maps from saved XML data, ActionElementMaps are now validated to ensure the Action Id referenced still exists and is discarded if not. - Added Axis Data Format to HardwareJoystickMap - Updated controller definitions for changes in Fire OS 5. Fire OS versions prior to 5 are no longer supported. Changed Controller Definitions: - Added Amazon Fire TV mapping to Nyko Playpad definition - Removed Amazon Fire TV definition for the following controllers due to changes to Fire OS 5. The default Android definition will now be used for these controllers on Fire OS. - 8Bitdo NES30 (joystick mode) - 8Bitdo NES30 (gamepad mode) - 8Bitdo SNES30 (joystick mode) - 8Bitdo SNES30 (gamepad mode) - GameStick Controller - MadCatz C.T.R.L.R - MadCatz Micro C.T.R.L.R - Moga Hero Power - Moga Pro Power - Red Samurai Wireless Gamepad - Samsung EI-GP20 - SteelSeries Free - SteelSeries Stratus XL (HID) Bug Fixes: - Windows Standalone: Fixed very rare issue where left mouse button could get stuck in an on state until clicked again when switching from the desktop back to the application using the task bar when Native Mouse Handling option is enabled. 1.0.0.88: Changes: - Added PS4 native platform support - Added DualShock 4 definition for PS4 native - Added per-platform settings to Rewired Input Manager - Added "Disable Keyboard" option to per-platform settings in Rewired Input Manager - Custom Controllers can now be created via scripting - Added editor log messages in UserDataStore_PlayerPrefs every time data is saved and loaded. - Added new axis calibration sensitivity options to change calculation of axis sensitivity using a multiplier, raise to power, or an AnimationCurve. - Windows Standalone: Added workaround for Nvidia Shield Controller bugs caused by new firmware causing extreme stalls when receiving input events in Raw Input. Controller can only work with Use XInput enabled and will not cause stalls. API Changes: - Added ReInput.ConfigHelper.xboxOnePrimaryInputSource property - Added ReInput.ConfigHelper.ps4PrimaryInputSource property - Added ReInput.ControllerHelper CreateCustomController(int sourceControllerId) method - Added ReInput.ControllerHelper CreateCustomController(int sourceControllerId, string tag) method - Added ReInput.ControllerHelper GetFirstCustomControllerWithSourceId(int sourceId) method - Added ReInput.ControllerHelper GetFirstCustomControllerWithTag(string tag) method - Added ReInput.ControllerHelper CustomControllersWithSourceId(int sourceId) method - Added ReInput.ControllerHelper CustomControllersWithTag(string tag) method - Added AxisSensitivityType enum - Added AxisCalibration.sensitivityType property - Added AxisCalibration.sensitivityCurve property - Added AxisCalibrationData.sensitivityType field - Added AxisCalibrationData.sensitivityCurve field - Added Platforms.PS4.PS4GamepadExtension class - Added Platforms.PS4.PS4GamepadMotorType enum - Added Platforms.PS4.LoggedInUser struct Modified Controller Definitions: - Android: Changed L/R trigger mappings on Nyko Playpad to match across different device revisions. - Android: Changed L/R trigger mappings on Nyko Playpad Pro to match across different device revisions. - Android: Changed Samsung EI-GP20 definition to match Unity 4.x versions correctly due to mapping changes in various versions of Unity. - Android: Changed Xiaomi Wireless Game Controller definition to match Unity 4.x versions correctly due to mapping changes in various versions of Unity. Bug Fixes: - Windows Standalone: Fixed errors logged by Unity during Quaternion creating when using Dual Shock 4 when connected via Bluetooth with Enhanced Device Support enabled. - Windows Standalone: Fixed incorrect Dual Shock 4 Orientation calculation when connected via Bluetooth with Enhanced Device Support enabled. - Conflict checking no longer returns True when checking a keyboard element assignment against a blank (invalid) keyboard ActionElementMap. - PlayMaker Integration: Fixed infinite loop in certain Actions when using events. 1.0.0.87: Changes: - Added Racing Wheel controller template. - Added HOTAS controller template. - Added Flight Yoke controller template. - Added Flight Pedals controller template. - Added the following controller mappings the Racing Wheel controller template: - Logitech G25 - Logitech G27 - Logitech G29 - Thrustmaster F430/T100 - Thrustmaster T150 - Thrustmaster T300 RS - Thrustmaster TH8A - Fanatec Porsche 911 Turbo S - Saitek Heavy Equipment Wheel & Pedal - Added the following controller mappings to the HOTAS controller template: - CH Fighter Stick - CH Pro Throttle - Saitek X45 - Saitek X52 - Saitek X52 Pro - Saitek X-55 Rhino Stick - Saitek X-55 Rhino Throttle - Saitek JI3 Cyborg 3D Gold - Mad Catz C.Y.B.O.R.G V1 - Thrustmaster HOTAS Warthog Joystick - Thrustmaster HOTAS Warthog Throttle - Thrustmaster T.1600M - Thrustmaster T.Flight Hotas X - Thrustmaster USB Joystick - Logitech Extreme 3D Pro - Added the following controller mappings to the Flight Yoke controller template: - CH Eclipse Yoke - Saitek Pro Flight Yoke - Added the following controller mappings to the Flight Pedals controller template: - CH Pro Pedals - Saitek Pro Flight Rudder Pedals - Added inspector warning when editing a Rewired Input Manager prefab instance. - Added uFS - Flight Simulation Engine integration pack. New Controller Definitions: - Logitech G25 - Fanatec Porsche 911 Turbo S Bug Fixes: - Added additional PlayerPrefs.Save calls to various public save methods in UserDataStore_PlayerPrefs. 1.0.0.86: Changes: - Added Rewired.UnityInputOverride class to allow changing UnityInputOverride settings at runtime. - Thrustmaster Dual Analog 3: Added Left Trigger / Right Trigger mappings to Dual Analog Gamepad Template. - UFPS Rewired Input Manager prefab: Added default mapping for 3D Rudder. New Controller Definitions: - 3D Rudder - Thrustmaster TH8A Add-on Shifter - Thrustmaster T150 Racing Wheel Modified Controller Definitions: - Windows Standalone Raw Input: Fixed Thrustmaster T300RS controller definition missing R2 binding in Variant 1. - Added Clutch to Thrustmaster T300RS controller definition. - Changed Logitech G29 controller definition Clutch element identifier type to Axis. 1.0.0.85: Changes: - Added Unity Input Override script to reroute calls to Unity input to Rewired in most scripts with no code changes required. - Rewired Standalone Input Module: Updated to include changes to Unity 5.3 Standalone Input Module including incorporating touch input. - Removed Touch Input Module component from Rewired Event System prefab. - Updated Control Mapper demo scenes due to changes to the Rewired Standalone Input Module. - Added controller definition variant system. - Added Windows Phone 8.1 DLL for building to Windows 8.1 Universal platform. (Requires Unity 5.3.4p2+) - Getting input for an Action that doesn't exist every frame no longer spams the log. API Changes: - Added Player.ControllerHelper.MapHelper.ContainsMapInCategory(string categoryName) method overload - Changed Player.ControllerHelper.MapHelper.SetMapsEnabled methods to return the number of maps that changed state. - Changed Player.ControllerHelper.MapHelper.SetAllMapsMapEnabled methods to return the number of maps that changed state. - Changed ControllerExtensions.DualShock4ControllerExtension.GetAccelerometerValueRaw method to return unmodified data directly from hardware. - Added ControllerExtensions.DualShock4ControllerExtension.GetAccelerometerValue method. - Changed ControllerExtensions.DualShock4ControllerExtension.GetGyroscopeValueRaw method to return unmodified data directly from hardware. - Added ControllerExtensions.DualShock4ControllerExtension.GetGyroscopeValue method. - Added ControllerExtensions.DualShock4ControllerExtension.GetLastGyroscopeValue method. - Added ControllerExtensions.DualShock4ControllerExtension.GetLastGyroscopeValueRaw method. - Added ControllerExtensions.DualShock4ControllerExtension.GetOrientation method. - Added ControllerExtensions.DualShock4ControllerExtension.ResetOrientation method. Controller Definitions: - Linux Native: Added SteamOS variant for Microsoft XBox 360 Controller. - Windows Raw Input: Merged XBox One Controller (Windows 10+) into XBox One Controller definition. - Windows Direct Input: Merged XBox One Controller (Windows 10+) into XBox One Controller definition. - Windows Raw Input / Direct Input: Added Thrustmaster T300 RS definition variant for controller with Thrustmaster driver installed. - Android: Added SteelSeries Stratus XL (Unity 5+ required). - Android: Added Xiaomi Wireless Game Controller mappings for Unity 5+. - Android: Merged Samsung EI-GP20 controller definitions for Unity 4.x and Unity 5.x. - Removed Xbox One Controller (Windows 10+) definition (obsolete). 1.0.0.84: Changes: - Improved accuracy of button down detection when frame rate is extremely low and a button is pressed and released quickly on all platforms. (Note: XInput, being polling-based, still has the potential for button misses at low frame rates.) Bug Fixes: - OSX Fallback: Fixed bug in Sony Dual Shock 3 controller definition. - Float XML data is now read correctly when system's current culture expects commas instead of periods for decimal separator. 1.0.0.83: Changes: - Added Windows 10 Universal (UWP) platform native input support for joysticks. (.NET scripting backend) - Added Windows 10 Universal (UWP) platform native input support for joysticks. (IL2CPP scripting backend) - Added Windows 10 Universal (UWP) platform fallback input support for joysticks. - Control Mapper: Added additional options to theme text settings. API Changes: - Added ReInput.ConfigHelper.windowsUWPPrimaryInputSource property. - Added Platforms.WindowsUWPPrimaryInputSource enum. - Added Player.ControllerHelper.MapHelper.GetFirstButtonMapWithAction(Controller controller, int actionId, bool skipDisabledMaps) - Added Player.ControllerHelper.MapHelper.GetFirstButtonMapWithAction(Controller controller, string actionName, bool skipDisabledMaps) - Added Player.ControllerHelper.MapHelper.GetFirstAxisMapWithAction(Controller controller, int actionId, bool skipDisabledMaps) - Added Player.ControllerHelper.MapHelper.GetFirstAxisMapWithAction(Controller controller, string actionName, bool skipDisabledMaps) - Added Player.ControllerHelper.MapHelper.GetFirstElementMapWithAction(Controller controller, int actionId, bool skipDisabledMaps) - Added Player.ControllerHelper.MapHelper.GetFirstElementMapWithAction(Controller controller, string actionName, bool skipDisabledMaps) - Added Player.ControllerHelper.MapHelper.ButtonMapsWithAction(Controller controller, int actionId, bool skipDisabledMaps) - Added Player.ControllerHelper.MapHelper.ButtonMapsWithAction(Controller controller, string actionName, bool skipDisabledMaps) - Added Player.ControllerHelper.MapHelper.AxisMapsWithAction(Controller controller, int actionId, bool skipDisabledMaps) - Added Player.ControllerHelper.MapHelper.AxisMapsWithAction(Controller controller, string actionName, bool skipDisabledMaps) - Added Player.ControllerHelper.MapHelper.ElementMapsWithAction(Controller controller, int actionId, bool skipDisabledMaps) - Added Player.ControllerHelper.MapHelper.ElementMapsWithAction(Controller controller, string actionName, bool skipDisabledMaps) New Controller Definitions: - Added Windows UWP Fallback definitions for the following controllers: Microsoft XBox 360 Controller (Includes many generics/clones, XBox One Controller, etc.) - Added Windows UWP Native definitions for the following controllers: 8Bitdo NES30 / FC30 (Bluetooth, Joy Mode) 8Bitdo NES30 / FC30 (Wired) 8Bitdo NES30 Pro / FC30 Pro (Bluetooth, Mode 1) 8Bitdo NES30 Pro / FC30 Pro (Wired) 8Bitdo SNES30 / SFC30 (Bluetooth, Joy Mode) 8Bitdo SNES30 / SFC30 (Wired) 8Bitdo Zero Amazon Fire Game Controller Arcade Guns G-500 AimTrak Light Gun Buffalo BGCFC801 (NES/Famicom Gamepad w/ Turbo) Buffalo BSGP801 (SNES Gamepad w/ Turbo) CH Products Eclipse Yoke CH Products Fighterstick USB CH Products Pro Pedals CH Products Pro Throttle CH Products Throttle Quadrant Game Elements GGE909 Recoil GameCube Controller (Mayflash 2-port USB adapter, Mayflash 2-port adapter for WiiU & PC, Mayflash 4-port adapter for WiiU & PC) GameStick Controller idroid:con Snakebyte (Mode 1) idroid:con Snakebyte (Mode 2) ípega BLUETOOTH Classic GamePad (full-size gamepad) ípega Multi-Media Bluetooth Controller ípega Wireless GAMEPAD Controller (mini gamepad) Logitech Dual Action Logitech Extreme 3D Pro Logitech F310 (X mode) Logitech F310 (D mode) Logitech F710 (X mode) Logitech F710 (D mode) Logitech G27 Racing Wheel Logitech G29 Driving Force Racing Wheel Logitech RumblePad 2 USB Mad Catz C.T.R.L.R Mad Catz C.Y.B.O.R.G. V1 Mad Catz Micro C.T.R.L.R Microsoft XBox 360 Controller (Wired) (Includes many generics/clones) Microsoft XBox 360 Controller (Wireless) (Includes many generics/clones) Microsoft XBox One Controller Moga Hero Power Moga Pro Power Nvidia Shield Controller (Wired) Nyko Playpad Nyko Playpad Pro Nyko AirFlo EX Ouya Gamepad P.I. Engineering RailDriver P.I. Engineering XK-24 PS3 Controller (Gasia Wireless USB Adapter. Includes Trust GXT 39) PS3 Controller (Mayflash Wireless USB Adapter) Radio Shack PC Gaming Controller Razer Serval Red Samurai Wireless Android Gamepad (G mode) Saitek Heavy Equipment Control Panel (Pro Farming) Saitek Heavy Equipment Wheel and Pedals (Pro Farming) Saitek JI3 Cyborg 3D Gold Saitek P880 Saitek P990 Saitek Pro Flight Cessna Rudder Pedals Saitek Pro Flight Cessna Trim Wheel Saitek Pro Flight Combat Rudder Pedals Saitek Pro Flight Rudder Pedals Saitek Pro Flight Throttle Quadrant Saitek Pro Flight TPM Panel Saitek Pro Flight Yoke System Saitek X45 Digital Joystick & Throttle Saitek X52 Flight Control System Saitek X52 Pro Flight Control System Saitek X-55 Rhino Stick Saitek X-55 Rhino Throttle Samsung EI-GP20 Smartphone Game Pad Satechi Bluetooth Wireless Universal Gamepad (ST-UBGC) Sony DualShock 2 (Insten Adapter) Sony DualShock 2 (My-Power CO., LTD Adapter) Sony DualShock 4 (Bluetooth) Sony DualShock 4 (Wired) SteelSeries FREE SteelSeries Stratus XL (Windows/Android version) Thrustmaster Dual Analog 3 Thrustmaster F430 Racing Wheel Thrustmaster HOTAS Warthog Joystick Thrustmaster HOTAS Warthog Throttle Thrustmaster Score-A Thrustmaster T.16000M Thrustmaster T.Flight Hotas X Thrustmaster T100 Racing Wheel Thrustmaster T300 RS Racing Wheel Thrustmaster USB Joystick VRinsight Ship Console WiiU Pro Controller (Mayflash Wireless USB adapter) XiaoMi Wireless Game Controller Zhidong N (XInput mode) Zhidong N (Android mode) Zhidong N (Direct Input mode) Zhidong V+ (XInput mode) Zhidong V+ (Direct Input mode) Bug Fixes: - Fixed exception when an unrecognized controller is attached when native input is disabled in a Windows Standalone build. - Fixed issue causing input event delegate removal to fail in Player.RemoveInputEventDelegate functions. 1.0.0.82: Changes: - Windows Raw Input: Improved Bluetooth device detection when paired during gameplay. - Windows Raw Input: Reduced Bluetooth device detection overhead. - Rewired Input Manager: Added Action list exporter. - Added Action id property drawer and attribute. - Changed platform library loading system to include only necessary libraries to reduce project build size on Unity 5.0+ builds. (Unity 4.x still uses Resources system.) API Changes: - Added ActionIdPropertyAttribute - Added Dev.ActionIdFieldInfoAttribute Bug Fixes: - Windows XInput: Fixed newly introduced bug where exception could be thrown when an XInput controller was disconnected. - Windows Raw Input: Fixed extremely rare exception thrown when Bluetooth device is not identified properly when paired during gameplay, disconnected, then re-connected. New Controller Definitions: - Thrustmaster Dual Analog 3 1.0.0.81: New Controller Definitions: - 8Bitdo Zero (Wireless) - 8Bitdo SNES30 / SFC30 (Wireless, Joy Mode) - 8Bitdo SNES30 / SFC30 (Wireless, Mode 1) - Zhidong N (XInput mode) - Zhidong N (Direct Input mode) - Zhidong N (Android mode) - Zhidong V+ (XInput mode) - Zhidong V+ (Direct Input mode) - Satechi ST-UBGC Bluetooth Wireless Universal Gamepad Modified Controller Definitions: - Sony Dual Shock 2 (My-Power CO.) - Removed GUID from matching criteria due to potential mismatching issues. 1.0.0.80: Changes: - RewiredStandaloneInputModule: Added workaround for Unity issue causing Unity UI navigation to intermittently fail when using the Siri Remote touchpad on tvOS. New Controller Definitions: - P.I. Engineering XK-24 - 8Bitdo NES30 Pro / FC30 Pro (Wired) - 8Bitdo NES30 Pro / FC30 Pro (Bluetooth, Mode 1) - Logitech G29 Driving Force Racing Wheel Modified Controller Definitions: - Changed 8Bitdo NES30 (wired) definition for button layout changes in firmware 2.65, all platforms. - Changed 8Bitdo NES30 (Joy Mode) definition for button layout changes in firmware 2.65, all platforms. - Unity 5+: Changed Samsung EI-GP20 definition on Android, Amazon Fire TV to correct for different Right Stick axis mappings in Unity 5.0+. - Added Linux Native mapping to Logitech G27 definition. Bug Fixes: - Windows App Store (8.0, 8.1): Fixed issue causing exception on initialization. - Windows Raw Input: Fixed hot-plugging issue on Windows 10 with certain HID devices. - Windows Raw Input: Steam Raw Input fix now works if Steam is initialized after Rewired. - Linux Native: Axis -> button hardware definitions mappings no longer fail when source is Axis 0. - Fixed bug in Saitek X55 Throttle definition on Direct Input. 1.0.0.79: New Controller Definitions: - Saitek X52 Pro - Horipad Ultimate HIP-047U Wireless Gamepad Modified Controller Definitions: - Added OSX and OSX Fallback definitions for Logitech Rumble Pad 2 - Added support for 2-port Mayflash GameCube Controller Adapter for Wii U & PC - Added support for 4-port Mayflash GameCube Controller Adapter for Wii U & PC - Removed matching criteria for Saitek X52 Pro from Saitek X52 definition Changes: - Added support for new Amazon Fire TV (2015). Bug Fixes: - XInput no longer throws an exception when Joystick.StopVibration() is called from a controller disconnect event. - Editor will now use the best available input source available to the editor when in Webplayer build target mode instead of falling back to Unity input. - Steam Controller fix can now be disabled in Rewired Input Manager. - Created separate controller definition for Saitek X52 Pro due to hardware differences. 1.0.0.78: New Controller Definitions: - Mad Catz C.Y.B.O.R.G. V1 - Saitek Heavy Equipment Wheel & Pedals (Pro Farming) - Saitek Heavy Equipment Control Panel (Pro Farming) Changes: - Minor optimizations to fallback platform input code. Bug Fixes: - Fixed incorrect Controller.hardwareIdentifier on OSX Standalone platform. 1.0.0.77: Changes: - Windows: Added workarounds for issue where Steam Controller prevents non-XInput devices from functioning when attached. Optional: Can be set in Rewired Input Manager -> Settings. - DualShock4ControllerExtension: Exposed Dual Shock 4 touchpad data (currently for Windows only). - Custom Controller axes can now be set to uncalibrated to allow handling of values outside -1 to +1 range. - Improved Bluetooth controller connect/disconnect on Windows Standalone when using Raw Input. - Updated Apple tvOS support for Unity 5.3.0p0 beta. New Controller Definitions: - Thrustmaster Score-A - XiaoMi Wireless Game Controller Modified Controller Definitions: - Modified Apple TV Remote (2015) definition for changes in Unity 5.3.0p0 beta. - Added Mad Catz, Inc. Street Fighter IV FightStick TE to Xbox 360 controller definition. - Added Mad Catz Pro Flight Cessna Rudder Pedals to Saitek Pro Flight Rudder Pedals definition. API Changes: - Added ControllerExtensions.DualShock4ControllerExtension.maxTouches property - Added ControllerExtensions.DualShock4ControllerExtension.GetTouchId method - Added ControllerExtensions.DualShock4ControllerExtension.GetTouchPosition method - Added ControllerExtensions.DualShock4ControllerExtension.GetTouchPositionByTouchId method - Added ControllerExtensions.DualShock4ControllerExtension.GetTouchPositionAbsolute method - Added ControllerExtensions.DualShock4ControllerExtension.GetTouchPositionAbsoluteByTouchId method - Added ControllerExtensions.DualShock4ControllerExtension.Istouching method - Added ControllerExtensions.DualShock4ControllerExtension.IsTouchingByTouchId method - Added AxisCalibration.applyRangeCalibration property Bug Fixes: - Fixed issue when changing from Unity as input source to another input source at runtime. - Control Mapper now displays an Action's Descriptive Name with +/- appended if no Positive Descriptive Name or Negative Descriptive Name have been set. - Fixed bug in Rewired Input Manager where in rare circumstances two Actions in different Action Categories were allowed to have the same name. 1.0.0.76: New Controller Definitions: - Linux Native: Nyko Playpad Pro - Amazon Fire TV: Nyko Playpad Pro - P.I. Engineering RailDriver (Windows only currently) Modified Controller Definitons: - Apple TV Remote (2015): Added Pitch, Rotate, Acceleration X, Y, Z, and Gravity X, Y, Z axes. Changes: - Added support for more Unity fallback joystick axes in Unity 5+ for upcoming tvOS support. - Optimized Unity fallback joystick button code for joysticks 5-8 in Unity 5+. API Changes: - Added ControllerExtensions.RailDriverControllerExtension 1.0.0.75: Changes: - Added Razer Forge TV platform. - In the Unity Editor, when the build target is set to something other than the native OS platform, the chosen input source for the current Editor platform is loaded instead of falling back to Unity input. New Controller Definitions: - SteelSeries Nimbus (MFi) - Apple TV Remote (2015 model) - Razer Forge TV: Razer Serval - Saitek Combat Pedals - New Linux Native Definitions: - CH Products Pro Throttle - CH Products FighterSitck - CH Products Eclipse Yoke - CH Products Pro Pedals - Saitek Pro Flight Throttle Quadrant - Saitek Pro Flight Cessna Trim Wheel - Saitek Pro Flight TPM Panel - Saitek X45 Digital Joystick & Throttle - Saitek X-55 Rhino Stick - Saitek X-55 Rhino Throttle - Saitek JI3 Cyborg 3D Gold - Saitek Pro Flight Yoke - Saitek Pro Flight Rudder Pedals - ThrustMaster T16000M - ThrustMaster T.Flight Hotas X - Thrustmaster HOTAS Warthog Joystick - Thrustmaster HOTAS Warthog Throttle - Logitech Extreme 3D Pro - VRinsight Ship Console - Arcade Guns G-500 AimTrak Light Gun API Changes: - Added ReInput.ConfigHelper.osxStandalonePrimaryInputSource property. - Added ReInput.ConfigHelper.linuxStandalonePrimaryInputSource property. - Added ReInput.ConfigHelper.disableNativeInput property. - Added ReInput.ConfigHelper.android_supportUnknownGamepads property. - Added ReInput.ConfigHelper.defaultJoystickAxis2DDeadZoneType property. - Added ReInput.ConfigHelper.autoAssignJoysticks property. - Added ReInput.ConfigHelper.maxJoysticksPerPlayer property. - Added ReInput.ConfigHelper.distributeJoysticksEvenly property. - Added ReInput.ConfigHelper.assignJoysticksToPlayingPlayersOnly property. - Added ReInput.ConfigHelper.reassignJoystickToPreviousOwnerOnReconnect property. Bug Fixes: - Raw Input: Fixed incorrect Stick Rotate mapping on ThrustMaster T16000M. - Raw Input: Fixed incorrect Yoke Z mapping on Saitek Pro Flight Yoke. - Amazon Fire TV now uses Amazon Fire TV controller definitions if available instead of Android. 1.0.0.74: Changes: - OSX Native: Now supports pressure-sensitive buttons on MFi controllers. New Controller Definitions: - OSX Native: SteelSeries Stratus XL (MFi) API Changes: - Added Controller.Button.isPressureSensitive property - Added Controller.Button.pressure property - Added Controller.Button.pressurePrev property 1.0.0.73: Changes: - Added SDL2 input source option for Windows Standalone, OSX Standalone, and Linux Standalone. - Added option to choose input source(s) by platform in Rewired Input Manager. - Input source now falls back to Unity Input when in Xbox One mode in the Unity editor. - Added support for Guide button on XInput devices on Windows when using XInput. - Added Default Joystick Dead Zone Type option to Rewired Input Manager. - RewiredStandaloneInputModule now continues to work when destroying a Rewired Input Manager and instantiating a new one. New Controller Definitions: - Razer Serval - Linux Native: XBox One Controller - Linux Fallback: XBox One Controller - Many new SDL2 Game Controller mappings (Windows, OSX, Linux, when using SDL2 as input source) Bug Fixes: - ActionElementMap.actionCategoryId has been deprecated. Will be removed in a future release. - Native HID device failure on OSX is handled more gracefully. 1.0.0.72: Changes: - Changed handling of multiple Rewired Input Managers in a scene. Now when a level is loaded an additional Rewired Input Manager is found, it will just be automatically deleted instead of throwing an error. This is to simplify the process and allow each level to have a Rewired Input Manager prefab instance without requiring an instantiator script. - Added tracking of the individual input sources that contribute to the combined value of an Action. API Changes: - Added Player.GetCurrentInputSources methods - Added Player.IsCurrentInputSource methods - Added InputActionEventData.GetCurrentInputSources methods - Added InputActionEventData.IsCurrentInputSource methods Bug Fixes: - Fixed incorrect mapping of L1/R2 and L2/R2 on Sony DualShock 4 when using Enhanced Device Support in Windows Standalone. 1.0.0.71: Changes: - Added native joystick support for Linux Standalone platform - Full intelligent hot-plugging support - More than 20 buttons and axes per joystick for advanced controllers and HOTAS setups - Vibration for XBox 360 controllers (and other compatible controllers) - Tested under Ubuntu 12.04 amd64, Ubuntu 14.04 x86/amd64, Ubuntu 15.04 amd64, and Mint 17.2 amd64 - Works in Unity 4.x and 5.x - Added Android: Support Unknown Gamepads option in Rewired Input Manager settings to allow auto-detection of unknown gamepads on Android. (Limitations apply, see documentation for details.) - Added additional Behavior Designer tasks - Added icon to Behavior Designer tasks - Changed display names of Behavior Designer tasks New Controller Definitions: - SteelSeries Stratus XL (Windows / Android version) - Thrustmaster T300 RS (PS3 mode only) - Standardized Gamepad New Controller Definitions for Linux Standalone (Native): - Microsoft XBox 360 Controller (Wired) (Includes many generic/clones) - Sony DualShock 3 - Sony DualShock 4 - Logitech F310 (X and D modes) - Logitech F710 (X and D modes) - Logitech Dual Action - Saitek P880 - Saitek P990 - Game Elements GGE909 Recoil - Nyko AirFlo EX - Radio Shack PC Gaming Controller - SteelSeries FREE - SteelSeries Stratus XL - Moga Hero Power - Moga Pro Power - GameStick Controller - Amazon Fire Game Controller - Google Nexus Player Gamepad - Nvidia Shield Controller (Wired) - PS3 Controller (Gasia Wireless Adapter, includes Trust GXT 39) - Red Samurai Wireless Android Gamepad - Samsung EI-GP20 Smartphone Game Pad - 8Bitdo NES30 (Wired) - 8Bitdo NES30 (Bluetooth, Mode 1) - 8Bitdo NES30 (Bluetooth, Joy Mode) - Nyko Playpad - ípega Wireless GAMEPAD Controller - ípega Multi-Media Bluetooth Controller - idroid:con Snakebyte (Mode 1) - idroid:con Snakebyte (Mode 2) - GameCube Controller (Mayflash 2-port USB adapter) - Saitek X52 API Changes: - Added ReInput.GetFirstJoystickTemplateElementIdentifier method 1.0.0.70: Changes: - Windows Standalone: Native Mouse Handling mode now respects Windows Control Panel "Switch Primary and Secondary Buttons" setting. 1.0.0.69: New Controller Definitions: - Moga Hero Power (HID) - Moga Pro Power (HID) New Integrations: - PlayMaker - Behavior Designer 1.0.0.68: New Controller Definitions: - Samsung Smartphone Game Pad (EI-GP20) - Mayflash Wireless PS3 Adapter - Mayflash Wireless WiiU Pro Controller Adapter API Changes: - Added ReInput.Reset method - Added ReInput.configuration property - Added ReInput.ConfigHelper class - Added Joystick.vibrationMotorCount property - Added IControllerVibrator.GetVibration method - Added RewiredStandaloneInputModule.UseAllRewiredGamePlayers property. - Added RewiredStandaloneInputModule.UseRewiredSystemPlayer property. - Added RewiredStandaloneInputModule.RewiredPlayerIds property. - Added RewiredStandaloneInputModule.MoveOneElementPerAxisPress property. - Added DualShock4ControllerExtension class. - Added DualShock4MotorType enum. Changes: - Input source settings can now be changed at runtime through ReInput.configuration object. - Added option to RewiredUFPSInputHelper to stabilize joystick look sensitivity in UFPS regardless of framerate. - Reduced axis deadzones on Saitek P990. - Added Repeat Delay option to RewiredStandaloneInputModue. - RewiredStandaloneInputModule detects mobile device platforms more accurately. - Xbox One controller vibration continues until manually stopped on Windows Standalone (XInput) - Sony DualShock 4 controller now supports vibration, light control, accelerometer, gyroscope, and battery level in Windows Standalone (Raw Input only) (preliminary implementation) - Added Enhanced Device Support option to Rewired Input Manager -> Settings Bug Fixes: - Fixed issue in Digital Axis Snap handling when pressing opposing axes simultaneously. - Filters out joysticks named "Empty" on PS4 platform. - Fixed controller matching issue on Ouya platform. - Fixed issue on Xbox One platform where controllers could be connected with invalid identifying information from Unity causing the controller to show up as an Unknown Controller. 1.0.0.67: New Controller Definitions: - PS3 Controller (Gasia Wireless Adapter) - Includes Trust GXT 39 gamepad. Changes: - Control Mapper now searches for any Rewired Input Manager in the scene when first initialized. - Changed listbox colors in the Rewired Editor. 1.0.0.66: Changes: - Added Microsoft Xbox One (Windows 10+) controller definition due to new driver changes in Windows 10 that affect the element layout. - Reduced size of default deadzone on XBox One controller sticks. 1.0.0.65: Changes: - Added allowMouseInput and allowMouseInputIfTouchSupported to RewiredStandaloneInputModule to filter out mouse control to prevent conflicts with TouchInputModule on devices with touchscreens. - Installer now adds entries to the Unity input manager instead of replacing the entire file. Bug Fixes: - D-Pads now work correctly on the XBox One platform. 1.0.0.64: Changes: - Exceptions that occur in user event handler code are handled more gracefully. Bug Fixes: - Control Mapper now unsubscribes from input events when destroyed. - Fixed hot-plugging issue in 64-bit builds on Windows. 1.0.0.63: Changes: - Added support for Unity pre-configured joysticks on Linux platform. - Added Linux pre-configured controller definitions for: - Sony Dual Shock 3 - Sony Dual Shock 4 - Unity Preconfigured Gamepad (any other pre-configured gamepad) - Added Guide button to Microsoft Xbox 360 Controller definition. - Added Guide button mapping to Dual Analog Gamepad Template for Microsoft Xbox 360 Controller. 1.0.0.62: Changes: - Patched RewiredStandaloneInputModule for undocumented change Unity made to PointerInputModule.GetMousePointerEventData in Unity 5.1.2p1 Bug Fixes: - Fixed initialization issue on Xbox One platform. 1.0.0.61: API Changes: - Added ReInput.ControllerHelper.keyboardEnabled Changes: - Improved performance of joystick input on Unity fallback platforms. 1.0.0.60: Changes: - Added Control Mapper, ready-to-use, customizable control remapping system. - Added UserDataStore system for saving and loading control configuration data. Can be customized to use any data storage system you choose. - Added UserDataStore_PlayerPrefs component for simple saving and loading of control configuration data using PlayerPrefs. - Added Axis2D element which binds two axes together as an 2D axis so deadzone can be computed from the combined axes. - All recognized game controllers updated with Axis2D on all joysticks on all platforms. - All joysticks in recognized controllers now use a radial deadzone. - Added Compound Element to Hardware Joystick Map. API Changes: - Added Controller.Axis2D class - Added Controller.Element.isMemberElement property - Added Player.GetAxis2D method - Added Player.GetAxis2DPrev method - Added Player.GetAxis2DRaw method - Added Player.GetAxis2DRawPrev method - Added CompoundControllerElementType enum - Added ControllerElementIdentifier.compoundElementType property - Added ControllerElementType.CompoundElement - Added InputBehavior.ImportData method - Added UserDataStore class - Added UserDataStore_PlayerPrefs class - Added Interfaces.IUserDataStore interface - Added ReInput.userDataStore property 1.0.0.59: API Changes: - Added ControllerMap.DeleteElementMapsWithAction - Added ControllerMap.DeleteButtonMapsWithAction - Added ControllerMapWithAxes.DeleteAxisMapsWithAction - Added InputBehavior.Reset Changes: - Changed Saitek P990 FPS button mapping in Dual Analog Gamepad Template from Center 2 to Center 1. Bug Fixes: - Fixed XML string output always returning 0 bytes on WSA platform. 1.0.0.58: Changes: - Removed null product name on Sony DualShock 3 on Android platform due to possible matching conflicts. - Android, Amazon Fire TV, and PS4 platforms now ignore joysticks with null names to account for Unity's changed handling of removed joysticks on these platforms. - Android and Amazon Fire TV platforms now ignore joysticks with "keyboard" in the name to filter out keyboards. Bug Fixes: - Separated Amazon Fire TV Remote controller definition for Android and Amazon Fire TV platforms and fixed buttons assignments. - Amazon Fire TV Stick platform now correctly detected. 1.0.0.57: Changes: - Improved Xbox One platform support -- includes vibration. - Added Xbox One platform. - Moved OuyaInputSource.cs into the project. Installation step is no longer required. - Microsoft Xbox One gamepad controller definition now uses individual trigger axes on Xbox One fallback platform. - Added Amazon Fire TV as a separate platform due to mapping differences vs Android. - Added the following controller definitions for Amazon Fire TV platform: - Amazon Fire Game Controller - Google Nexus Player Gamepad - Microsoft XBox 360 Controller (wired) - Microsoft XBox 360 Controller (wireless) - Sony DualShock 4 - Mad Catz C.T.R.L.R - Mad Catz C.T.R.L.R Micro - Red Samurai Gamepad (G mode) - SteelSeries FREE - 8Bitdo NES30 (Bluetooth, Mode 1) - 8Bitdo NES30 (Bluetooth, Joy Mode) - Ouya Gamepad - GameStick Controller - Added default Placeholder path in Windows App Store DLL for Unity 5+. API Changes: - Added Controller.Extension class - Added Controller.extension property - Added Controller.GetExtension() method - Added Joystick.systemId property - Added Joystick.unityId property - Added Joystick.SetVibration(int motorIndex, float motorLevel) method - Added Joystick.SetVibration(int motorIndex, float motorLevel, bool stopOtherMotors) method - Added ReInput.TimeHelper class - Added ReInput.time property - Added Interfaces.IControllerVibrator interface - Added Platforms.XboxOne.XboxOneGamepadExtension class - Added Platforms.XboxOne.XboxOneGamepadMotorType enum - Added Platforms.XboxOne.XboxOneGamepadVibration struct Bug Fixes: - Removed all Dictionary usage due to memory allocation bug in iOS Dictionary handling. Now allocates no memory on normal updates in iOS. - Fixed rare joystick matching issue on Unity fallback platforms and Custom platforms. - Fixed rare crash in Windows 64-bit builds and 64-bit editor. - Fixed Windows input sources failing to initialize on certain systems in the Unity editor. - Fixed product name on Google Nexus Player remote controller definition. - Fixed Game Controller Back and Menu button assignments on Android platform. 1.0.0.56: Bug Fixes: - Fixed rare error that caused joysticks to fail to initialize properly in Raw Input in the 64-bit Unity editor and 64-bit builds. 1.0.0.55: Bug Fixes: - Added workaround for new Unity type casting bug in Windows Universal mode in the editor introduced in Unity 5.1. 1.0.0.54: Changes: - Added more detailed debug code to track down a rare issue in Raw Input. 1.0.0.53: Bug Fixes: - Malfunctioning HID devices in Raw Input will no longer cause all input to stop functioning. 1.0.0.52: Changes: - Removed dynamic platform DLL switching system due to bugs with no workarounds in Unity's command line batch building system. - Player.ControllerHelper.MapHelper.LoadMap now copies existing map.enabled state if loading over an existing map in the same category and layout. API Changes: - Added Player.ControllerHelper.MapHelper.LoadMap(int controllerId, int categoryId, int layoutId, bool startEnabled) - Added Player.ControllerHelper.MapHelper.LoadMap(int controllerId, string categoryName, string layoutName, bool startEnabled) - Added Player.ControllerHelper.MapHelper.LoadMap(ControllerType controllerType, int controllerId, int categoryId, int layoutId, bool startEnabled) - Added Player.ControllerHelper.MapHelper.LoadMap(ControllerType controllerType, int controllerId, string categoryName, string layoutName, bool startEnabled) - Added Player.ControllerHelper.MapHelper.AddMap(int controllerId, ControllerMap map, bool startEnabled) - Added Player.ControllerHelper.MapHelper.AddMap(Controller controller, ControllerMap map, bool startEnabled) - Added Player.ControllerHelper.MapHelper.AddMap(ControllerType controllerType, int controllerId, ControllerMap map, bool startEnabled) - Deprecated Rewired.Editor.PlatformModeChanger.SyncToBuildTarget Bug Fixes: - Removed duplicate element identifiers in Thrustmaster T.Hotas Flight X controller definition. - Removal of dynamic platform DLL switching should eliminate all command line building issues. 1.0.0.51: API Changes: - Added AxisCalibration.sensitivity - Added AxisCalibrationData.sensitivity - Added Player.GetAnyButton - Added Player.GetAnyButtonDown - Added Player.GetAnyButtonUp - Added Player.GetAnyButtonPrev - Added Player.GetAnyNegativeButton - Added Player.GetAnyNegativeButtonDown - Added Player.GetAnyNegativeButtonUp - Added Player.GetAnyNegativeButtonPrev - Added ReInput.ControllerHelper.GetAnyButton - Added ReInput.ControllerHelper.GetAnyButtonDown - Added ReInput.ControllerHelper.GetAnyButtonUp - Added ReInput.ControllerHelper.GetAnyButtonPrev - Added Controller.GetAnyButton - Added Controller.GetAnyButtonDown - Added Controller.GetAnyButtonUp - Added Controller.GetAnyButtonPrev Bug Fixes: - Fixed issue causing joystick connect/disconnect events to fail if game window was detached in the Windows editor when Play mode was started when using native input sources. 1.0.0.50: Bug Fixes: - Fixed Native Mouse Support not functioning in Windows in Unity editor in Unity 5.1.0 Beta 3+ 1.0.0.49: API Changes: - Added Rewired.Editor.PlatformModeChanger.SyncToBuildTarget Bug Fixes: - Command Line building now works as expected. 1.0.0.48: Bug Fixes: - Fixed bugs in Player.ControllerHelper.MapHelper causing issues when multiple controllers are assigned to the same player. - Fixed issue causing device connect/disconnect notifications to fail in the Unity editor on Windows (Raw Input) when the editor Build or Preferences windows are open. 1.0.0.47: New Controller Definitions: - Thrustmaster F430/T100 Racing Wheel Changes: - Improved performance of all editor windows. 1.0.0.46: New Controller Definitions: - Saitek X52 / X52 Pro Flight Control System Modified Controller Definitions: - Added mouse nub support to Saitek X55 Rhino Throttle. Changes: - Added option to exclude a Player from joystick auto-assignment in the Rewired Editor. - Changed RawInput to detect additional axes. - Changed OSX Native to detect additional axes. * IMPORTANT * If you've created your own controller definitions, be sure to verify and update the axis and button count values for Raw Input and OSX native in the Matching Criteria as this update may cause the axis and/or button count to return more elements than before. API Changes: - Added Player.ControllerHelper.excludeFromControllerAutoAssignment. Bug Fixes: - Recognized controllers with no joystick maps defined no longer load Unknown Controller map. - Joysticks are no longer assigned back to the previous owner on re-connect if Auto-Assign Joysticks is disabled. 1.0.0.45: New Controller Definitions: - Mad Catz Micro C.T.R.L.R - Buffalo BSGP801 Classic USB Gamepad (SNES) API Changes: - Added ReInput.MappingHelper.UserAssignableActionsInCategory(int categoryId, bool sort) - Added ReInput.MappingHelper.UserAssignableActionsInCategory(string categoryName, bool sort) - Added ReInput.MappingHelper.ActionsInCategory(int categoryId, bool sort) - Added ReInput.MappingHelper.ActionsInCategory(string categoryName, bool sort) - Added Player.ControllerHelper.MapHelper.AddEmptyMap(int controllerId, string categoryName, string layoutName) - Added Player.ControllerHelper.MapHelper.AddEmptyMap(ControllerType controllerType, int controllerId, string categoryName, string layoutName) Bug Fixes: - Fixed issue on OSX when hot-plugging with multiple identical controllers. - Fixed issue with ReInput.MappingHelper.UserAssignableActionsInCategory. - Fixed issue with ReInput.MappingHelper.UserAssignableActions. - Fixed error in Sony PlayStation Vita controller definition. Other: - Re-enabled Windows App Store installer for Unity 5.0.1+ due to critical bug fix in Unity 5.0.1 that allows Windows App Store support to work again. 1.0.0.44: New Controller Definitions: - Thrustmaster HOTAS Warthog Joystick - Thrustmaster HOTAS Warthog Throttle - Thrustmaster USB Joystick - Saitek Pro Flight Cessna Trim Wheel - Buffalo FC-801 Famicom USB gamepad Bug Fixes: - Fixed rare axis calculation issue in RawInput for certain joysticks. 1.0.0.43: Changes: - Fixed incorrect mappings on Dual Shock 4 controller on PS4. - Added workaround for issue with Unity 5 DLL importer settings on platforms not supported in retail Unity distribution (PS4, XBox One, etc.) where these platforms would throw compiler errors on build because the platform checkboxes could not be enabled in Rewired_Core.dll importer by default due to Unity metadata limitations. 1.0.0.42: API Changes: - Added ControllerMap.ClearElementMaps. - Added ControllerMapWithAxes.ClearElementMaps. Bug Fixes: - Fixed bug in controller axis polling detection. 1.0.0.41: New Controller Definitions: - Saitek JI3 Cyborg 3D Gold Changes-: - Added Axis Moves One Item option to RewiredStandaloneInputModule to make axes move to the next UI element without scrolling through multiple elements as the axis is held. - Added mappings for Sony DualShock 4 on PS4 platform. API Changes: - Added ReInput.ControllerHelper.PollingHelper.PollAllControllersForAllButtonsDown - Added ReInput.ControllerHelper.PollingHelper.PollControllerForAllButtonsDown - Added ReInput.ControllerHelper.PollingHelper.PollAllControllersForFirstButtonDown - Added ReInput.ControllerHelper.PollingHelper.PollAllControllersOfTypeForFirstButtonDown - Added ReInput.ControllerHelper.PollingHelper.PollControllerForFirstButtonDown - Added ReInput.ControllerHelper.PollingHelper.PollAllControllersForFirstElementDown - Added ReInput.ControllerHelper.PollingHelper.PollAllControllersOfTypeForFirstElementDown - Added ReInput.ControllerHelper.PollingHelper.PollControllerForFirstElementDown - Added ReInput.ControllerHelper.PollingHelper.PollAllControllersForAllElementsDown - Added ReInput.ControllerHelper.PollingHelper.PollControllerForAllElementsDown - Added ControllerWithMap.PollForAllButtonsDown - Added ControllerWithMap.PollForAllElementsDown - Added ControllerWithAxes.PollForAllElementsDown - Added Player.ControllerHelper.PollingHelper.PollControllerForAllButtonsDown - Added Player.ControllerHelper.PollingHelper.PollControllerForAllElementsDown - Added Player.ControllerHelper.PollingHelper.PollAllControllersOfTypeForFirstButtonDown - Added Player.ControllerHelper.PollingHelper.PollAllControllersOfTypeForAllButtonsDown - Added Keyboard.PollForAllKeysDown Bug Fixes: - Fixed issue with invalid strings when a joystick returns an invalid product name in Raw Input. - Fixed issue with negative axis detection in RewiredStandaloneInputModule. - ControllerWithAxes.PollForAllAxes now works correctly. 1.0.0.40: Changes: - Updated Windows fallback handling to account for changes to UnityEngine.Input.GetJoystickNames released in Unity 5.0.0p1 to improve hot-plugging in Webplayer and Windows Standalone if not using native input sources. 1.0.0.39: New Controller Definitions: - GameCube Controller (requires Mayflash 2-port USB adapter) Changes: - Axis values very near 1 or -1 are now rounded to the whole number. Bug Fixes: - Added workaround for a Unity 5 bug that caused editor crashes in Windows when recompiling scripts in the editor in Play mode with Native Mouse Input enabled. 1.0.0.38: Changes: - Separated OnGUI call in InputManager_Base into a separate optional component to eliminate memory allocations generated by calling OnGUI in the script. - Added OnGUIHelper class to manage OnGUI updates. - Set OnGUIHelper script execution order on install/update. - OnGUI update in Rewired Input Manager -> Settings now starts disabled. 1.0.0.37: Changes: - Published separate Unity 5 branch. - Added WebGL support. - Added workarounds for bugs in IL2CPP conversion. - Added CustomControllersTilt example. Bug Fixes: - Fixed exception thrown when the Rewired folder is moved into the Plugins or StandardAssets folder. - Fixed exception thrown in some versions of Unity when the editor script runs before compilation is complete. - Fixed errors in Nyko Playpad and Nyko Playpad Pro definitions showing incorrect names in the Rewired Editor. 1.0.0.36: New Controller Definitions: - Nyko Playpad - Nyko Playpad Pro - SteelSeries FREE Changed Controller Definitions: - Added Windows Raw Input, Direct Input, OSX Native, and Linux mappings to Amazon Fire Game Controller definition. - Added Game Circle button to Amazon Fire Game Controller definition. - Added Back, Menu, and Game Circle to Amazon Fire Game Controller in Dual Analog Gamepad Template. - Removed Windows Fallback mapping for Mad Catz C.T.R.L.R due to non-specific device name string causing possible incorrect device identification. - Removed Windows Fallback mapping for 8bitdo NES30 due to non-specific device name string causing possible incorrect device identification. - Modified Raw Input handling of axes that return invalid min/max data in the HID report. - Modified OSX Native handling of axes that return invalid min/max data in the HID report. Bug Fixes: - HardwareJoystickTemplateMap editor now increments Element Identifier ids correctly when created new entries. 1.0.0.35: New Controller Definitions: - ípega Multi-Media Bluetooth Controller - Thrustmaster T.16000M - Saitek Pro Flight Throttle Quadrant Changes: - When enabling the first controller map that contains an Action mapped to a button that is currently being held down, GetButtonDown will no longer return TRUE during the frame the map is enabled. - When disabling the last controller map that contains an Action mapped to a button that is currently being held down, GetButtonUp will no longer return TRUE during the frame the map is disabled. Bug Fixes: - Double-click and GetButtonDownBuffer timers now use unscaled time. 1.0.0.34: New Platform Support: - Added OUYA platform support. (Requires OUYA Everywhere SDK Unity plugin.) New Controller Definitions: - Saitek X45 Digital Joystick & Throttle Changes: - Raw Input now filters out devices with no elements. - OSX Native now filters out devices with no elements. - OSX Native now filters out multiple redundant devices being returned for a single device. Controller Definition Changes: - Removed Sabrent 12-button Gamepad / DR Gamepad definition from ControllerDataFiles. Reason: The identifying information returned by this controller matches dozens of gamepads made by Dragon Rise, Inc., each with varying controller layouts and elements. To fully support all these devices, the definition has been removed so as to prevent incorrect controller identification. The user may still map these controllers through manual user mapping. - Added Google Nexus Player Gamepad mappings for OSX Native, OSX Fallback, and Linux. - Added Power button mapping to Google Nexus Player Gamepad on Android platform. - Added Back button mapping to Google Nexus Player Gamepad in Dual Analog Gamepad Template. 1.0.0.33: Changes: - Added GameStick Controller definitions for Raw Input and Linux. - Updated Windows fallback handling to account for announced changes to UnityEngine.Input.GetJoystickNames scheduled for release in Unity 4.6.3p1 to improve hot-plugging in Webplayer and Windows Standalone if not using native input sources. - Added filtering to remove devices that return "keyboard" in the name on Linux platform. (Unity input bug reporting keyboards as joysticks.) - Changed ControlRemappingDemo1 example to check ReInput.unityJoystickIdentificationRequired and only show the fallback joystick identification dialog box on platforms that require it. - Changed FallbackJoystickIdentificationInfo example to check ReInput.unityJoystickIdentificationRequired and only show the fallback joystick identification dialog box on platforms that require it. API Changes: - Added ReInput.unityJoystickIdentificationRequired. (Note: You can now check this value before requiring users to manually identify their joysticks on fallback platforms. If false, no manual identification is required on that platform and Unity version.) 1.0.0.32: New Controller Definitions: - Saitek Pro Flight Yoke System - Saitek Pro Flight TPM Panel - Saitek Pro Flight Rudder Pedals - CH Products Pro Throttle - Thrustmaster T.Hotas Flight X - VRinsight Ship Console - Sony DualShock 2 (alternate profile using My-Power CO., LTD PS2 adapter) Changes: - Changed RawInput axis detection to include axes in Simulation Controls usage page. - Changed RawInput button detection to include buttons in Consumer usage page. - Changed OSX Native axis detection to include axes in Simulation Controls usage page. - Changed OSX Native button detection to include buttons in Consumer usage page. * IMPORTANT * If you've created your own controller definitions, be sure to verify and update the axis and button count values for Raw Input and OSX Native in the Matching Criteria as this update may cause the axis and/or button count to return more elements than before. - Changed Raw Input Unknown Controller definition to include added axes. - Changed default axis deadzone from 0.25 to 0.1 in Unknown Controller definition. - Added L/R triggers, Back, Home, Start, Nvidia Button to Nvidia Shield definition in Raw Input. - Added OSX Native definition for Nvidia Shield controller. - Added Nvidia Shield Back button mapping in Dual Analog Template. - Changed Saitek P880 Shift button mapping to Center 2 in Dual Analog Template. - Changed Saitek P990 FPS button mapping to Center 2 in Dual Analog Template. - Changed 8bitdo NES30 Raw Input definition to match new axis count. - Changed Mad Catz C.T.R.L.R Raw Input definition to match new axis count. - Added Native OSX definition for Mad Catz C.T.R.L.R (PC mode). - Changed Raw Input HardwareJoystickMap to include other axes outside the fixed set of Direct Input axes and removed Direct Input only axes. - Various changes to HardwareJoystickMap data storage structure for Raw Input and Direct Input to accommodate differences. Bug Fixes: - Fixed L/R triggers in NVidia Shield definition in Direct Input. - Fixed Raw Input handling of axes that return signed values in the HID report. - Fixed OSX Native handling of axes that return invalid min/max data in the HID report. - Fixed incorrect button assignments on Nvidia Shield definition for Raw Input. 1.0.0.31: Changes: - Raw Input will now fall back to Direct Input if it fails to initialize on Windows Standalone platform. - Direct Input will now fall back to Raw Input if it fails to initialize on Windows Standalone platform. - XInput now falls back to older or newer versions of XInput if XInput 1.3 is not installed. Now works out of the box on Windows Vista, 7, and 8 without additional dependencies. (Note: If XInput 1.3 is not installed, all XInput controllers will be detected as gamepads.) - Windows Standalone platform dependencies are now optional. - Minor performance improvements. Bug Fixes: - Fixed Awake warning in RewiredInputManager.cs - Fixed crash when failing to initialize native input sources on Windows Standalone platform. - Fixed crash when running Windows Standalone build in a sandbox. - Fixed Raw Input support for Windows Standalone Platform in Windows XP. - Fixed HardwareJoystickMap serialized data null reference exceptions in certain versions of Unity. 1.0.0.30: API Changes: - Added ReInput.MappingHelper.GetJoystickMapInstance - Added ReInput.MappingHelper.GetKeyboardMapInstance - Added ReInput.MappingHelper.GetMouseMapInstance - Added ReInput.MappingHelper.GetCustomControllerMapInstance 1.0.0.29: New Controller Definitions: - 8Bitdo NES30 Gamepad Modified Controller Definitions: - Disabled definition for ípega Wireless GAMEPAD Controller in Direct Input and Windows Fallback due to identification conflicts. Raw Input now works for this controller due to Bluetooth enhancements. - Disabled definition for ípega BLUETOOTH Classic GamePad in Direct Input and Windows Fallback due to identification conflicts. Raw Input now works for this controller due to Bluetooth enhancements. - Fixed definition for Mad Catz C.T.R.L.R on Direct Input. - Added editor controller names to and refined public names of various controller definitions. Changes: - Made Bluetooth controller identification more robust in Windows Raw Input platform to be able to better identify certain Bluetooth controllers. - Added Editor Controller Name to HardwareJoystickMap to allow displaying a different controller name in the Rewired Editor for developer use. - Added Split Axis to HardwareJoystickTemplateMap to allow mapping an axis to two buttons through a template. API Changes: - Added ReInput.MappingHelper.GetLayout(ControllerType controllerType, int layoutId) - Added ReInput.MappingHelper.GetLayout(ControllerType controllerType, string name) - Added ReInput.MappingHelper.GetLayoutId(ControllerType controllerType, string name) - Deprecated Player.ControllerHelper.MapHelper.SetMapsEnabled(bool state, int categoryId, int layoutId) Bug Fixes: - ReInput.MappingHelper.MapLayouts(ControllerType controllerType) can now return CustomController layouts. - Player.ControllerHelper.MapHelper.SetMapsEnabled(bool state, string categoryName, string layoutName) now works correctly. - Player.ControllerHelper.MapHelper.SetMapsEnabled(bool state, ControllerType controllerType, string categoryName, string layoutName) now works correctly. 1.0.0.28: Bug Fixes: - Fixed bug introduced in 1.0.0.24 that broke mouse and CustomController axes. 1.0.0.27: Bug Fixes: - Unknown Controller map is now loaded correctly for unrecognized devices on Direct Input platform. 1.0.0.26: New Controller Definitions: - Mad Catz C.T.R.L.R - Amazon Fire Game Controller - Amazon Fire TV Remote - Google Nexus Player Gamepad - Google Nexus Player Remote - GameStick Controller - idroid:con Snakebyte (Mode 1 & 2) - ípega Wireless GAMEPAD Controller - ípega BLUETOOTH Classic GamePad - CH Products Throttle Quadrant Modified Controller Definitions: - Improved generic controller detection in XBox 360 controller definition. - Added Back button functionality to Nvidia Shield Controller definition. Changes: - Added UnityUI RewiredStandaloneInputModule integration for Unity 4.6+. - Integration packages are now automatically updated when Rewired is updated. - OSX Native Matching Criteria changed to require Product Id and Vendor Id pairs in the corresponding array indices to match. - Added KeyCode source for joystick buttons/axes in HardwareJoystickMap. - Added Disable option to Matching Criteria in HardwareJoystickMap. - Added custom inspector to ControllerDataFiles. Modified Enums: - Added Rewired.Data.Mapping.HardwareElementSourceType.Key = 2 - Added Rewired.Data.Mapping.HardwareElementSourceTypeWithHat.Key = 3 1.0.0.25: Bug Fixes: - Fixed issue with event-based input causing a Player's events to fire for every Player. 1.0.0.24: Changes: - Changed the axis count formula for Raw Input to more closely match results from Direct Input. * IMPORTANT * If you've created your own controller definitions, be sure to verify and update the axis count value for Raw Input in the Matching Criteria as this update may cause the axis count to return more axes than before. New Controller Definitions: - Saitek X-55 Rhino Stick - Saitek X-55 Rhino Throttle - OUYA Gamepad - Sony DualShock 2 (requires Insten PS2 to PS3 USB converter) - Radio Shack PC Gaming Controller (2603666) Modified Controller Definitions: - Linux: Added DualShock 4 on Bluetooth - Windows, OSX, Linux: Added Red Samurai Wireless Controller mappings on Bluetooth Bug Fixes: - Fixed AOT compiler failure when building to WiiU platform. - Fixed problems with fallback joystick identification when a joystick has buttons that are always on. - Raw Input: Fixed detection of buttons on certain devices when button HID usages are not sequential. Other: - Minor speed improvements to HardwareJoystickMap editor. 1.0.0.23: Bug Fixes: - Fixed crash in OSX 10.9.x when using Sony Dualshock 4 controller via Bluetooth. 1.0.0.22: New Features: - Added UFPS integration pack for use with UFPS by Vision Punk. (UFPS required) 1.0.0.21: New Controller Definitions: - NVidia Shield Portable - Nvidia Shield Wireless Controller New Feautres: - Added Joystick Axis Sensitivity to Input Behavior. - Added Custom Controller Axis Sensitivity to Input Behavior. - Added Regex matching option for controller names in HardwareJoystickMap. Bug Fixes: - Fixed issue preventing runtime Input Behavior modification. Other: - Minor performance improvements. 1.0.0.20: Bug Fixes: - Fixed error in the Unity editor under certain build targets with specific controllers attached. - All controller vibration is now stopped when the Rewired Input Manager is destroyed. 1.0.0.19: - Fixed exception in rare cases when detecting devices on Raw Input. 1.0.0.18: - Added XBox One controller mapping for XBox One platform. 1.0.0.17: - Fixed issue where certain keyboards would show up as joysticks when using Raw Input. 1.0.0.16: - Fixed issue where certain controllers could contain invalid null characters in Joystick.hardwareName on some systems when using Raw Input. 1.0.0.15: New Controller Definitions: - Logitech G27 Racing Wheel Changes: - Separated Raw Input and Direct Input into separate platforms in HardwareJoystickMap to support different mappings for each input source. - Changed PS Vita mapping in Dual Analog Gamepad template so L/R buttons correspond to triggers (Left Shoulder 2, Right Shoulder 2) instead of shoulder buttons. Bug Fixes: - Fixed issue with button detection on certain controllers in Raw Input. - Fixed issue when user deletes an InputBehavior that was still assigned to one or more Actions. - Fixed issue where wrong InputBehavior might be loaded if any InputBehaviors were previously deleted. - Fixed issue with split mouse axes returning clamped values. 1.0.0.14: New Controller Definitions: - iOS Mfi Controller (iOS only) - Red Samurai Wireless Gamepad (Android only) Other: - Added more XML documentation in the Player class. 1.0.0.13: Bug Fixes: - Native mouse handling in Windows Standalone now handles Alt + Enter screen mode changes properly. 1.0.0.12: Changes: - Reverted all events back to .NET events and implemented internal workaround to fix issues on iOS. 1.0.0.11: New Controller Definitions: - Microsoft XBox One Controller - Logitech Extreme 3D Pro - Logitech RumblePad 2 - Arcade Guns G-500 AimTrak Light Guns - Sony Playstation Vita PSM Changes: - Added more mappable platforms to Hardware Joystick Map (iOS, Windows Phone 8, Blackberry, Playstation 3, Playstation 4, Playstation Mobile, Playstation Vita, XBox 360, XBox One, Wii, WiiU) Bug Fixes: - .NET Events have been replaced with a custom event system because of exceptions in iOS related to event handling. - Fixed incorrect button detection on certain controllers when using RawInput - ReInput.GetUnityJoystickIdFromAnyButtonOrAxisPress now handles axes with non-zero default values correctly. - CustomControllersTouch demo now works properly on mobile devices. 1.0.0.10: Bug Fixes: - Fixed bug in OnGUI bug workaround added in 1.0.0.9. 1.0.0.9: Bug Fixes: - Added workaround for Unity bug in input handled during OnGUI loop. Also affected axis detection during polling in OnGUI loop. 1.0.0.8: Bug Fixes: - Fixed error when pressing play in a scene with a Rewired Input manager with no Actions created. - Fixed bug with controller axis assignment polling for axes that have a non-zero default value. 1.0.0.7: New Features: - Added Raw Input support on Windows Standalone platform. - Raw Input is now the default input source on Windows Standalone. - Mouse input can now be handled natively through Raw Input on the Windows Standlone platform when using either Direct Input or Raw Input as the input source. - Native mouse handling is now used by default. - Framerate independent input now applies to mouse input on Windows Standalone. - Rewired Editor: Keyboard map keys can now be assigned by polling for a key press. Bug Fixes: - Increased Direct Input Hat limit to 4 from 2. - In the Unity editor, when the build target is set to a platform other than the OS running the editor, controller maps will be loaded from the platform matching the computer's OS instead of the build target setting. - Mouse axis assignment polling now works correctly regardless of framerate. - Controller axis assignment polling now handles axes that have a non-zero default value. - Modified key combinations now block input from actions mapped to the same unmodified keys when activated. - Loading default maps in a Player will now attempt to retain the current enabled states of the maps after loading. If the number of maps before and after differs, this isn't possible and the enabled states must be set manually. - Fixed improper calculation with Screen Position Delta and Speed mouse modes. 1.0.0.6: Bug Fixes: - Rewired Editor: Fixed error when adding a Custom Controller in Unity 4.5+ - Added default Unity InputManager axes to replacement InputManager.asset file. 1.0.0.5: New Features: - You can now move a Actions to a different categories in the Rewired Editor. Bug Fixes: - Rewired Editor: Layout list box now shows asterisk when a KeyboardMap exists in that Layout. - Player.ControllerHelper.MapHelper.InputBehavoirs changed to InputBehaviors * This change requires code using this property to be updated * - HardwareJoystickMap editor: Fixed exception when creating HardwareJoystickMap elements before creating an Element Identifier. 1.0.0.4: - Added event-based input. - Added some missing GetAxis...ById methods in ControllerWithAxes. - Added methods to set enabled state on all maps in a specific category in Player. - XInput controllers with an unknown sub type are now treated as gamepads. - Changed name of "Generic Gamepad" to "DF Generic Gamepad" to avoid confusion. Added new methods: - Player.AddInputEventDelegate - Player.RemoveInputEventDelegate - Player.ClearInputEventDelegates - Player.ControllerHelper.Controllers - Player.MapHelper.SetAllMapsEnabled - Player.MapHelper.SetMapsEnabled - ControllerWithMap.GetButtonLastTimePressedById - ControllerWithMap.GetButtonLastTimeUnpressedById - ControllerWithAxes.GetAxisTimeActiveById - ControllerWithAxes.GetAxisTimeInactiveById - ControllerWithAxes.GetAxisLastTimeActiveById - ControllerWithAxes.GetAxisLastTimeInactiveById - ControllerWithAxes.GetAxisRawTimeActiveById - ControllerWithAxes.GetAxisRawTimeInactiveById - ControllerWithAxes.GetAxisRawLastTimeActiveById - ControllerWithAxes.GetAxisRawLastTimeInactiveById Added new Struct: - InputActionEventData Added new Enums: - UpdateLoopType - InputActionEventType 1.0.0.3: Added new methods: - ReInput.ControllerHelper.GetLastActiveController - Player.GetAxisTimeActive - Player.GetAxisTimeInactive - Player.GetAxisRawTimeActive - Player.GetAxisRawTimeInactive - Player.ControllerHelper.GetLastActiveController - Controller.GetLastTimeActive - Controller.GetLastTimeAnyButtonPressed - Controller.GetButtonLastTimePressed - Controller.GetButtonLastTimeUnpressed - ControllerWithAxes.GetLastTimeAnyAxisActive - ControllerWithAxes.GetAxisTimeActive - ControllerWithAxes.GetAxisTimeInactive - ControllerWithAxes.GetAxisLastTimeActive - ControllerWithAxes.GetAxisLastTimeInactive - ControllerWithAxes.GetAxisRawTimeActive - ControllerWithAxes.GetAxisRawTimeInactive - ControllerWithAxes.GetAxisRawLastTimeActive - ControllerWithAxes.GetAxisRawLastTimeInactive - Controller.Axis.lastTimeActive - Controller.Axis.lastTimeActiveRaw - Controller.Axis.lastTimeInactive - Controller.Axis.lastTimeInactiveRaw - Controller.Axis.timeActive - Controller.Axis.timeInactive - Controller.Axis.timeActiveRaw - Controller.Axis.timeInactiveRaw - Controller.Button.lastTimePressed - Controller.Button.lastTimeUnpressed 1.0.0.2: - Fixed bug with digital axis simulation calculation when Time.timeScale != 1 1.0.0.1: - Added 8-way hat support - Added XML schemas for xml data output - Added Android support - Added multi-button support in hardware joystick maps - Added new controller definitions: CH FighterStick USB, CH Pro Pedals USB, CH Eclipse Yoke, Sony DualShock 3, Sony DualShock 4 - Added controller definitions for all controllers on Android - Removed joysticks 11-20 from InputManager as Unity only supports up to 11 1.0.0.0: - Initial release