What is cInput?
cInput is a custom input manager for Unity which effectively replicates, improves, and therefore replaces Unity's built-in input manager. In other words, it does virtually everything Unity's input manager does and more. Not only that, but cInput is easier to use and perhaps most importantly it allows you to change controls at runtime! cInput works with gamepads, steering wheels, keyboard, mouse, etc...
Get it for only $20!
cInput is a custom input manager for Unity which effectively replicates, improves, and therefore replaces Unity's built-in input manager. In other words, it does virtually everything Unity's input manager does and more. Not only that, but cInput is easier to use and perhaps most importantly it allows you to change controls at runtime! cInput works with gamepads, steering wheels, keyboard, mouse, etc...
Get it for only $20!
|
Some features worth mentioning: + Supports modifier keys! + Compatible with Android, iOS, and Flash. + Customize input configuration at runtime. + Very easy to setup. + Works in the same way as the Input class. + Optional, adjustable built-in gui menu. + Accepts joysticks, steering wheels, etc. + Also works for webbuilds. Video tutorials. Webdemo. Check out the manual. ![]() |
Version History
v2.5.3
- Fixed cGUI not working when cSkin wasn't set. (Thanks KeithT)
- Fixed trying to load from PlayerPrefs when there was nothing saved.
v2.5.2
- Added Editor script to create the InputManager.asset file.
- Removed unused variable which caused Editor warnings. (Thanks Neurological)
- GUI color now works in both Unity 3.x and 4.x. (Thanks Neurological)
- Added functions to remove modifiers. (Thanks xadhoom)
v2.5.1
- Got individual axis gravity and sensitivity settings to work for reals (Thanks Kementh)
- Fixed bug where duplicate copies of same axis could be created.
v2.5.0
- Added the ability to set up and use modifier keys with AddModifier() and SetKey(). (Thanks Steve Tack and others)
- Added the ability to set gravity with SetAxisGravity() rather than having all axes use the same gravity. (Thanks Can Baycay)
- You can now also set the gravity for an axis when you create it with SetAxis(). (Thanks Can Baycay)
- Rewrote GUI code and separated it from cInput into its own script (see cGUI documentation).
- Separated Keys class from cInput into separate script.
- Added new GUISkins.
v2.4.5
- Fixed inability to use SetKey after cInput object was created. (Thanks Rob)
v2.4.4
- Fixed using mouse button as input triggering another call to ChangeKey. (Thanks Joseph)
- Fixed flickering Axis name in GUI when changing key.
- Deadzone for axes used as buttons now uses public "deadzone". (Thanks Lexie)
- Prevented _string2Key Dictionary from being created more than once.
v2.4.3
- Fixed out of range null-reference exception related to number of gamepads. (Thanks Julian)
v2.4.2
- cInput now caches joystick axis strings. (Thanks goodhustle)
- Escape doesn't close GUI menu in demo if scanning for new inputs. (Thanks MrG)
v2.4.1
- Added public Init() to manually create the cInput object. (Thanks goodustle)
- cInput now supports saving/loading inputs to/from sources other than PlayerPrefs. (Thanks
gumboots)
- Made "scanning" property static. (Thanks goodhustle)
- Fixed a bug with allowDuplicates.
- ResetInputs now re-saves defaults to PlayerPrefs. (Thanks goodhustle)
- Fixed ChangeKey to properly (dis)allow certain inputs. (Thanks Adrian)
- Fixed certain debug messages showing when they shouldn't.
v2.4.0
- cInput is now compatible with iOS, Android, and Flash.
- Improved efficiency (less CPU overhead).
- Fixed key & axis mapped to same input causing KeyUp to fire instantly. (Thanks goodhustle)
- Added read-only public bool "scanning" as getter for the private bool "_scanning" (Thanks goodhustle)
v2.3.1
- Added the ability to set sensitivity with SetAxisSensitivity() rather than having all axes use the same sensitivity. (Thanks Jacob)
- You can now also set the sensitivity for an axis when you create it with SetAxis().
- You can now forbid keys from being used as inputs with ForbidKey(). (Thanks Kurt)
v2.3.0
- Added IsKeyDefined() and IsAxisDefined() methods to allow other developers to make plugins compatible with cInput. (Thanks David)
- Added GetAxisRaw() method. (Thanks Jay, patrickw)
- Added Clear() method to remove all PlayerPrefs keys stored by cInput
- Fixed changed/deleted/added keys not saving/loading properly
- Keys class properties are now const, as they should be. (Thanks Jay)- SetAxis now has some error checking to make sure you're using it correctly. (Thanks Jay)
v2.2.3
- Fixed bug with GetAxis() not creating cInput object properly. (Thanks Christopher)
v2.2.2
- Fixed bug with inverted axes not saving/loading properly. (Thanks Christopher)
v2.2.1
- Analog inputs are now compatible with GetKeyDown(), GetKeyUp(), GetButtonDown(), and GetButtonUp() functions. (Thanks goodhustle)
v2.2
- ShowMenu() now accepts additional arguments for easier customization of cInput's menu. (Thanks goodhustle)
v2.1.1
- InvertAxis() and IsAxisInverted() have been combined into a single function: AxisInverted().
- Minor bugfixes.
v2.1
- Length() method has been replaced by the read-only cInput.length property.
- Can now manually assign keys with ChangeKey() instead of waiting for input from player.
- Added GetButton(), GetButtonDown(), and GetButtonUp().
- Can now allow duplicate inputs for multiple actions using cInput.allowDuplicates
- Can now invert an axis using InvertAxis("axisName").
- Can get axis inversion status with IsAxisInverted("axisName").
- SetAxis() can now accept 1 action instead of requiring 2.
- Better support for sliders, gas pedals and other analog inputs with Calibrate().
v2.0
- Initial release of cInput 2.
- Fixed cGUI not working when cSkin wasn't set. (Thanks KeithT)
- Fixed trying to load from PlayerPrefs when there was nothing saved.
v2.5.2
- Added Editor script to create the InputManager.asset file.
- Removed unused variable which caused Editor warnings. (Thanks Neurological)
- GUI color now works in both Unity 3.x and 4.x. (Thanks Neurological)
- Added functions to remove modifiers. (Thanks xadhoom)
v2.5.1
- Got individual axis gravity and sensitivity settings to work for reals (Thanks Kementh)
- Fixed bug where duplicate copies of same axis could be created.
v2.5.0
- Added the ability to set up and use modifier keys with AddModifier() and SetKey(). (Thanks Steve Tack and others)
- Added the ability to set gravity with SetAxisGravity() rather than having all axes use the same gravity. (Thanks Can Baycay)
- You can now also set the gravity for an axis when you create it with SetAxis(). (Thanks Can Baycay)
- Rewrote GUI code and separated it from cInput into its own script (see cGUI documentation).
- Separated Keys class from cInput into separate script.
- Added new GUISkins.
v2.4.5
- Fixed inability to use SetKey after cInput object was created. (Thanks Rob)
v2.4.4
- Fixed using mouse button as input triggering another call to ChangeKey. (Thanks Joseph)
- Fixed flickering Axis name in GUI when changing key.
- Deadzone for axes used as buttons now uses public "deadzone". (Thanks Lexie)
- Prevented _string2Key Dictionary from being created more than once.
v2.4.3
- Fixed out of range null-reference exception related to number of gamepads. (Thanks Julian)
v2.4.2
- cInput now caches joystick axis strings. (Thanks goodhustle)
- Escape doesn't close GUI menu in demo if scanning for new inputs. (Thanks MrG)
v2.4.1
- Added public Init() to manually create the cInput object. (Thanks goodustle)
- cInput now supports saving/loading inputs to/from sources other than PlayerPrefs. (Thanks
gumboots)
- Made "scanning" property static. (Thanks goodhustle)
- Fixed a bug with allowDuplicates.
- ResetInputs now re-saves defaults to PlayerPrefs. (Thanks goodhustle)
- Fixed ChangeKey to properly (dis)allow certain inputs. (Thanks Adrian)
- Fixed certain debug messages showing when they shouldn't.
v2.4.0
- cInput is now compatible with iOS, Android, and Flash.
- Improved efficiency (less CPU overhead).
- Fixed key & axis mapped to same input causing KeyUp to fire instantly. (Thanks goodhustle)
- Added read-only public bool "scanning" as getter for the private bool "_scanning" (Thanks goodhustle)
v2.3.1
- Added the ability to set sensitivity with SetAxisSensitivity() rather than having all axes use the same sensitivity. (Thanks Jacob)
- You can now also set the sensitivity for an axis when you create it with SetAxis().
- You can now forbid keys from being used as inputs with ForbidKey(). (Thanks Kurt)
v2.3.0
- Added IsKeyDefined() and IsAxisDefined() methods to allow other developers to make plugins compatible with cInput. (Thanks David)
- Added GetAxisRaw() method. (Thanks Jay, patrickw)
- Added Clear() method to remove all PlayerPrefs keys stored by cInput
- Fixed changed/deleted/added keys not saving/loading properly
- Keys class properties are now const, as they should be. (Thanks Jay)- SetAxis now has some error checking to make sure you're using it correctly. (Thanks Jay)
v2.2.3
- Fixed bug with GetAxis() not creating cInput object properly. (Thanks Christopher)
v2.2.2
- Fixed bug with inverted axes not saving/loading properly. (Thanks Christopher)
v2.2.1
- Analog inputs are now compatible with GetKeyDown(), GetKeyUp(), GetButtonDown(), and GetButtonUp() functions. (Thanks goodhustle)
v2.2
- ShowMenu() now accepts additional arguments for easier customization of cInput's menu. (Thanks goodhustle)
v2.1.1
- InvertAxis() and IsAxisInverted() have been combined into a single function: AxisInverted().
- Minor bugfixes.
v2.1
- Length() method has been replaced by the read-only cInput.length property.
- Can now manually assign keys with ChangeKey() instead of waiting for input from player.
- Added GetButton(), GetButtonDown(), and GetButtonUp().
- Can now allow duplicate inputs for multiple actions using cInput.allowDuplicates
- Can now invert an axis using InvertAxis("axisName").
- Can get axis inversion status with IsAxisInverted("axisName").
- SetAxis() can now accept 1 action instead of requiring 2.
- Better support for sliders, gas pedals and other analog inputs with Calibrate().
v2.0
- Initial release of cInput 2.
