Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[Solved] Input Plugin Advice

Discussion in 'General Discussion' started by ManAmazin, Oct 21, 2014.

  1. ManAmazin

    ManAmazin

    Joined:
    Aug 7, 2013
    Posts:
    246
    Wassup Unity Fam,

    was looking into input system plugin on the asset store and it came down to InControl and Rewired, now im not looking for plugin bashing but rather experiences with either to help me decide which to purchase, i was set on Incontrol until i just found out about Rewired like 30 minutes ago so turning to you guys who have maybe used either of the two or both.
     
  2. ManAmazin

    ManAmazin

    Joined:
    Aug 7, 2013
    Posts:
    246
    Info supplied did some more digging and choice has been made.
     
  3. Zeblote

    Zeblote

    Joined:
    Feb 8, 2013
    Posts:
    1,102
    And why don't you post what you chose and why?
     
    angrypenguin likes this.
  4. ManAmazin

    ManAmazin

    Joined:
    Aug 7, 2013
    Posts:
    246
    didn't think anyone cared to know lol

    but i chose Rewired as its customization and features are ridiculous and looking at the comparison chart it was a
    no-brainer especially when supporting multiply devices.....or even multiple controller types not just gamepads,K & M but driving wheels flight sticks etc

    this is the chart:

     
  5. iqbal_mineral

    iqbal_mineral

    Joined:
    Sep 17, 2014
    Posts:
    3
    @Computerkid23 where did you get this chart?
    or did you make it yourself?


    EDIT:
    nvm, got it from rewired website here
    It's quite funny looking rewired comparing its product itself to other, but the chart seems true :p
     
    Last edited: Apr 27, 2015
  6. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,617
    I'm puzzled to know what they mean by "Get input in Update, Fixed Update and OnGUI" being crossed out for Unity, 'cause they all work fine for me.
     
  7. Zeblote

    Zeblote

    Joined:
    Feb 8, 2013
    Posts:
    1,102
    Maybe he means that it doesn't actually load new input values more than once per frame and rewired somehow does? No idea as I don't use it.
     
  8. ShilohGames

    ShilohGames

    Joined:
    Mar 24, 2014
    Posts:
    3,015
    It depends on what you are planning to do. I am using InControl in a project that only needs game controller inputs and InControl works fantastic for this purpose. Rewired seems to have more options and flexibility for a wider variety of solutions. In my use case, I wanted something that would give me a standard way to interface with the most popular game controllers, and that is exactly what InControl is for. I did not need a control with keyboard, mouse, and generic joystick input options. Each project is different, though. You need to figure out which one is a better fit for your specific project.
     
  9. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,609
    If you call Input.GetButtonDown in FixedUpdate, you will get very poor results, missing button down presses if the frame rate is higher than Time.fixedTimeStep and getting multiple button down = TRUE results in consecutive frames if your framerate is lower than the Time.fixedTimeStep. This is especially obvious if you disable VSync, because with VSync enabled, the max 60 fps is close enough to the default 50fps fixed time step that you don't get too many misses. The same is true for OnGUI. Rewired allows you to get reliable results in any or all update loops you choose.

    One very, very important thing that Rewired gives you is native input on Windows and OSX. This is an incredibly important difference between Rewired and all the other systems available. Rewired goes directly to Raw Input and/or Direct Input and XInput on Windows, and I/O Kit on OSX to access input without having to rely on Unity's input system, allowing for far more control over input and bypassing all the bugs and oversights in Unity's input implementation. This makes possible some very powerful features such as full hot-plugging support for joysticks, support for more than 20 buttons per controller, MUCH better joystick recognition capability, better support for Bluetooth devices, and support for many joystick axes that simply do not work at all using Unity's system. Rewired is the only system to offer these native input solutions for these platforms at the present time.

    Another super important and unique feature is controller maps, which allows you to give your players pre-defined controller layouts for a huge variety of controllers, offer alternate controller layouts, allow remapping of controls in-game, and even save and load controller mappings and calibration settings which can persist from session to session (you can even build an entire player profile system, storing customized controller layouts for each player for any number of devices, whether recognized or not), have categories of controller mappings for various gameplay modes that you switch between during gameplay, and more. You can read about it here: http://guavaman.com/projects/rewired/docs/ControllerMaps.html

    Also, Rewired provides extended support for more common controllers on more platforms out of the box than any other system for Unity. The list is here: http://guavaman.com/projects/rewired/docs/SupportedControllers.html
     
    Last edited: Apr 29, 2015
  10. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,617
    So it's specific to the *Down and *Up methods? I guess that's why it's never been an issue to me, as they're not something I think I'd feel the need to use in FixedUpdate.
     
  11. greggtwep16

    greggtwep16

    Joined:
    Aug 17, 2012
    Posts:
    1,546
    I've had both products for awhile now and they both work great. Between the two I prefer Rewired but both will serve you well.

    For our current game though a regular joystick controller was too limiting (needed accelerometer and gyro support). Not to mention for local multiplayer games many controllers gets expensive and it's nice to be able to customize the controller to your game. For that reason I created this to turn any phone/tablet into a controller.

    It's a niche but since you didn't mention your use case I figured I'd mention my asset in case it fits. Also, the price will be reduced to $35 in the next few days when our latest update is approved.

     
  12. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,609
    Yes, because Unity refreshes the button down/up state in the Update loop. GetButtonDown/Up only return true for one frame. That is cleared on the very next Update, so if several fixed updates run before it's cleared, you get TRUE returned for multiple frames. Inversely, if two Update loops run before a Fixed Update has a chance, the state will be set, then cleared before Fixed Update ever gets a value. OnGUI is similar because it can update multiple times per frame. OnGUI isn't much of an issue anymore with the new Unity UI, but if you wanted a legacy GUI that has joystick support, GetButtonDown in OnGUI is fairly useful.

    Technically, Rewired does also update the element values in any or all the loops you specify because it goes to the native input sources, so the axis value can be a tiny bit fresher than Unity's when evaluated in FixedUpdate or OnGUI. This doesn't make a tremendous difference though because of how Unity's update sequence works.

    Very cool. You could plug the output of your WiFi controller's touch buttons and gyro axes into a Rewired Custom Controller to be able to use Rewired's Action and mapping system.

    But many tablets / phones are cheap! :D
     
    Last edited: Apr 30, 2015
    iqbal_mineral likes this.
  13. greggtwep16

    greggtwep16

    Joined:
    Aug 17, 2012
    Posts:
    1,546
    True and I do like your product, I used it in a prototype I made awhile back for a more standard game. However, other than PS3/PS4 on console unfortunately no hardware controllers support those sensors. I needed to make the asset to get access to the sensors. It has a built in event system and does work standalone. However, if someone were supporting both rewired and phones what you suggest would be possible for consistency.

    In the context of local multiplayer (usually at somebody's house with friends) bring your own device nowadays is usually cheaper since most people do already have a phone (not everyone sure but most). For Ouya, fire tv, nexus player, the controllers usually run about ~$40 which for 4 player would mean $160. People using their own phones would save the owner money not needing to buy any controllers (if everyone has a phone or only a controller for those that don't).

    So yes phones aren't cheaper but in that context it is cheaper :).
     
    angrypenguin likes this.