Search Unity

Rewired - Advanced Input for Unity

Discussion in 'Assets and Asset Store' started by guavaman, Sep 25, 2014.

  1. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    If the Rewired/Integration/UnityUI folder has been moved it won't update the UI info when you update. I don't know if this is what happened, but anyway you can extract the UnityUI folder from Rewired/Internal/Assets/Integration/UnityUI.

    Or you can trigger the upgrade script again by changing Rewired/Data/EditorSettings/Program Version 4 to 66 and then press play and stop in the editor.
     
  2. huulong

    huulong

    Joined:
    Jul 1, 2013
    Posts:
    224
    Hi!

    I had bought Rewired one year ago, but unfortunately I put it aside at that time because the mapping editor was taking all the CPU on Mac, and I could continue my project without it. Needing more advanced multiplayer controlers, I tried it again recently and it all works well now. However, when pulling my project from Windows I had to re-download the Internal folder, especially Rewired_Core.dll, from the store, because classes from the DLL were not found. I don't know if it is a general issue with moving DLLs from one platform to another in Unity, though. Maybe I should have synced the C# project first or something?

    Anyway, my question today is about Input Simulation. With Unity's native input system, I did the following: add a layer on top of Unity's Input by creating an InputManager class with members that record the state of virtual buttons (e.g. dictionaries), and when I need to know the state of a button, call InputManager.GetButton(). The latter will either delegate the query to Input.GetButton or return the virtual buttons' states depending on some boolean simulateInputMode.

    Of course, I can do the same on top of Rewired, but since I have to simulate buttons and axes for many players, I would have to recreate a part of the multiplayer input system, which is not really efficient... Is there an easy way to simulate inputs for testing purpose when using Rewired? The ideal case would be to keep using the "player.GetButtonDown()" syntax and setting something at the player level to hack the input, but another syntax would be fine for me.

    I could create a wrapper class around the Player class too, and instantiate one per player, but if you had already thought about the problem and devised something, I would like to use this instead.

    Thank you!
     
  3. huulong

    huulong

    Joined:
    Jul 1, 2013
    Posts:
    224
    I have another question:

    I have set my Input Behavior to Gravity = 1000 and Sensitivity = 1000 with Instant Reverse on, and my "Move Horizontal" and "Move Vertical" actions are indeed immediately reversed, but only from a negative to a positive contribution. This means that if I go down and then press up, I will go up, same for left to right. But if I press down or left while going up or right, nothing happens. In other words, actions with positive contributions have full priority. I would like to always give priority to the last contribution (the last key pressed), is it possible without writing my own code?

    P.S.: I was using a Gravity and Sensitivity of Infinity before, but I realized that it produced axis input values of NAN, equivalent to 0, so my motion just stopped instead of continuing in the opposite direction (whichever the original direction)
     
  4. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    Likely due to some optimizations by Unity. The OSX editor has always been much slower than Windows when loading SerializedProperties from SerializedObjects. I made optimizations (caching, etc) for the various HardwareJoystickMap, Template, and other editors because OSX was so slow, but I never had to do anything like that on the main Rewired Input Manager editor because it already ran fast enough.

    Yes, moving any files like scripts or DLLs with Finder/Explorer will not work unless you enable text meta files. You will lose all metadata without doing this. This is standard Unity practice. Text meta files are required for version control as well. The only other way to move files from one project to another is to export a unitypackage and import that. It retains metadata. This is explained in the Unity documentation.

    No, Rewired does not allow you to input values into the controllers. These values are taken directly from the hardware. Depending on the platform / input source, this may be in the form of polling or messages. In the case of input sources that use messages, inserting your own values would wreak havoc with the element states. A separate testing layer (like you describe) would have to be made to handle that, but Rewired does not support this at this time.
     
    Last edited: Sep 12, 2015
  5. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    This has been resolved and is awaiting release in the next 1.0.0.68 version. See this message and the following for details:
    http://forum.unity3d.com/threads/rewired-advanced-input-for-unity.270693/page-21#post-2260443

    I did not even know that the Unity editor float field supported Infinity.
     
  6. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    @huulong

    As for injecting values into player Actions (as opposed to controller buttons/axes), there's no direct way to do that through the API, though you could achieve the same effect through a Custom Controller. You would set up a testing controller with all your actions, assign this to each player you want to support testing, create a Custom Controller map, then input values via scripting for the particular actions you're testing.
     
    Last edited: Sep 12, 2015
  7. gibmation

    gibmation

    Joined:
    Dec 1, 2014
    Posts:
    311
    rhodnius likes this.
  8. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    If you're asking if there is out of the box support for iRDS, no, there isn't. Just about any system can be modified to use Rewired if you know what you're doing. If you have access to the source code, it's usually as trivial as doing a little find and replace. See this in the docs: http://guavaman.com/projects/rewired/docs/HowTos.html#converting-scripts
     
    gibmation likes this.
  9. gibmation

    gibmation

    Joined:
    Dec 1, 2014
    Posts:
    311
    Hi Guavaman thanks for reply. iRDS is dll based so I dont think I can edit anything here that controls input.
    Is there a way of using the current iRDS input setup via manager withReWired?

    If I do purchase ReWired would you give me a hand setting it up with iRDS.

    Thanks
    Gus
     
    rhodnius likes this.
  10. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    I have no experience with iRDS at all and I don't know how it works. I'm sorry but I can't do custom integrations. It takes a lot of time.
     
  11. gibmation

    gibmation

    Joined:
    Dec 1, 2014
    Posts:
    311
    I just needed some help man.
    I am downloading trial version to see what I can do with it.
    Thanks.g.
     
    rhodnius likes this.
  12. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    As mentioned, I know nothing about how iRDS is set up, how its input system works, and what options it makes available for interchanging input sources if any. 99% of the integration work would be coming up with a way of funneling the inputs in iRDS's input system to Rewired. And as you say, it's a DLL, so the task may be far more involved than just changing some source code. The only way to even be able to help with that is to see iRDS and how it works, dig through it, and then come up with some kind of plan to pipe the input in the best way possible. Hence, I cannot promise that I would even be able to help you in any meaningful way as I don't have iRDS. If the question(s) is something I can help with without knowing the ins and outs of iRDS and how it works, of course you can ask me. There hasn't been a single question posted to this thread or to me via support that I have not answered, even from people just using the trial version.
     
    Last edited: Sep 14, 2015
    rhodnius and gibmation like this.
  13. Maeslezo

    Maeslezo

    Joined:
    Jun 16, 2015
    Posts:
    331
    Hello,

    Is any possibility to get [0,1] from an axis instead of [-1,1]?

    I need it for a car brake pedal, for example.

    Sorry if it is a duplicate question, but I haven't found any similar in the forum

    Thank you.
     
  14. longroadhwy

    longroadhwy

    Joined:
    May 4, 2014
    Posts:
    1,551
    I do not own iRDS but just did a quick look at the on-line documentation. There is a class called
    IRDSPlayerControls which is where you need to start looking. There is a section which has the various things you are interested like brakeAxis, throttleAxis, ClutchAxis, and also raw input versions and tons of other options. I believe you would just need to feed the Rewired "inputs" into the raw input versions of iRDS and that should work.

    I have looked at iRDS before so that is why I have some idea of where to look. The author of iRDS will be able to provide additional guidance.
     
    Last edited: Sep 14, 2015
    rhodnius and gibmation like this.
  15. gibmation

    gibmation

    Joined:
    Dec 1, 2014
    Posts:
    311
    Thanks longroadhwy, much aprreciate your input on this. I thought that it should work asiRDS input are mapped in input manager, I have contacted iRDS but support not replied yet - they are usually quite quick.

    Thanks for the pointer will look into IRDSPlayerControls.
    I am not that good programmer - more like hacker - copy paste codes till they work lol.

    Will keep you informed of any successes.

    G.
     
    Last edited: Sep 14, 2015
    rhodnius likes this.
  16. huulong

    huulong

    Joined:
    Jul 1, 2013
    Posts:
    224
    Okay, thanks, I'll try that. In most cases, I simulate player actions at the level of the controller script, the same way bots are driven by an AI, but this time I wanted to check a few other things such as interaction with a UI menu.

    For the DLL issue, yes I am used to versioning with the meta files, just this time some DLLs did not work properly. I have done little cross - Windows / OS X versioning so far, but I'll try with other assets and projects until I get more familiar with the most common caveats.

    For the Snap / Reverse issue, no problem, I'll wait for the next update. The game is supposed to be played with gamepads so it is only a problem when testing on my keyboard.
     
  17. Maeslezo

    Maeslezo

    Joined:
    Jun 16, 2015
    Posts:
    331
    Hello,

    How can I get all the actions that a player has?

    Thank you!
     
  18. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    Is this controller a recognized controller? Axis ranges can only be modified by the hardware definition for a particular controller, or manually calibrated by the user for an Unknown Controller through a remapping UI (like Control Mapper). For recognized controllers, axes are already standardized so triggers and pedals return 0 - 1. Or for Unknown Controllers, you may be able to create a controller definition (depending on the controller) so it is recognized and fix the axis in the definition.
     
    Last edited: Sep 14, 2015
    Maeslezo likes this.
  19. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    The update should be out in the next couple of days. (And then another 5-10 before it appears on the Unity Asset Store.)
     
  20. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    For what purpose? I need to know how you intend to use this to give you an answer.

    You could be asking one of several questions here:
    1. How can I list all the Actions that are currently mapped by all controllers in a Player?
    2. How can I list all the Actions that are currently mapped by one controller in a Player?
    3. How can I list all the Actions that a Player may map at any time? (Which is really "How can I list all the Actions?")

    That can be further complicated by whether or not you have protected Actions that cannot be remapped. Additionally, whether or not you want them listed for a particular Action Category.

    A Player does not have a finite list of Actions. Actions are referenced by Controller Maps for each controller assigned to the Player. A Player's Controller Maps may map to any Action that exists in the Rewired Input Manager.
     
    Last edited: Sep 14, 2015
  21. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    From what I can see, that class is contained within the DLL, so you wouldn't be able to modify the source code. The real question here is _how_ do you feed Rewired inputs into iRDS in the first place. The API as I see it in the docs doesn't appear to have any way to input external values into the system. The only way I can see is if you can create a new IRDSPlayerControls.IRDSAnalogueRawInputs and feed the values in that way, but that doesn't even look correct because that seems to be just a class with some configuration options for iRDS's internal input control with no way to specify a value. Using reflection would work, but would be slow and bulky.

    What might be possible here is something like I did for UFPS where I extended the class (in this case, IRDSPlayerControls, and then from there make the necessary changes. You might have to get the source from the DLL with a decompiler (if its not obfuscated) so you know what source the new extended class should have and make your modifications from there. This would not be a simple task for one not very experienced in C# programming.

    The above is what I meant by figuring out how this system works and an intelligent way of interacting with it would be the bulk of the integration task.
     
    Last edited: Sep 14, 2015
  22. gibmation

    gibmation

    Joined:
    Dec 1, 2014
    Posts:
    311
    Hi guavaman, have recd reply from iRDS....
    Is this achievable?
    Thanks
    G.


     
    Last edited: Sep 14, 2015
    rhodnius likes this.
  23. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    I see, so IRDSCarControllInput is the class you need to input values into.

    Yes, that should not be difficult. You create a MonoBehaviour that updates every frame and in that update just do something like:

    // Assuming you already have a reference to IRDSCarControlInput as carControl and your Rewired.Player as player.
    // And assuming you've already set up Rewired with Actions Brake, Accelerate, Steer, created controller maps and assigned them to the Player

    carControl.setBrakeInput = player.GetAxis("Brake");
    carControl.setThrottleInput = player.GetAxis("Accelerate");
    carControl.setSteerInput = player.GetAxis("Steer");

    I suggest you set the Script Execution Order on your script as well to make sure the values update before iRDS.
     
    rhodnius and gibmation like this.
  24. nonathaj

    nonathaj

    Joined:
    Sep 4, 2013
    Posts:
    8
    Hello, I just got Rewired up and running in my FPS game. It works fantastic, and really made controller support across many types really easy. I was wondering if there is a way to do more advanced thumbstick deadzone management?

    Something like what is described here: http://www.third-helix.com/2013/04/12/doing-thumbstick-dead-zones-right.html

    I wrote up a function that should do something similar to what is described, however I just want to make sure that there isn't a better way to do this in the editor before I continue with my implementation.

    Code (CSharp):
    1.  
    2.     private Vector2 GetControlStickAxis2D(string horzAxis, string vertAxis)
    3.     {
    4.         Vector2 stick = RewiredPlayer.GetAxis2D(horzAxis, vertAxis);
    5.         if (RewiredPlayer.controllers.joystickCount > 0)
    6.         {
    7.             if (stick.sqrMagnitude < gamepadStickDeadZone * gamepadStickDeadZone)
    8.                 stick = Vector2.zero;
    9.             else
    10.                 stick = stick.normalized * ((stick.magnitude - gamepadStickDeadZone) / (1 - gamepadStickDeadZone));
    11.         }
    12.         return stick;
    13.     }
     
  25. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    Rewired already uses the method described as "The Right Way" in that article for all recognized joysticks.
     
  26. nonathaj

    nonathaj

    Joined:
    Sep 4, 2013
    Posts:
    8
    Awesome, how do I adjust the dead zone of a joystick axis?
     
  27. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    Generally you don't have to from the editor side. Each joystick is preconfigured with deadzones that match the hardware based on the joystick with which I created the definition. Since a deadzone is something very specific to each joystick and the users' preferences, this is generally done through a calibration UI such as in Control Mapper (included with Rewired) or as shown in the ControlRemappingDemo1 example (included with Rewired).

    This page in the docs shows the basic idea on how to access calibration data. The property you want is AxisCalibration.deadZone The radial deadzone is calculated based on the Max of the two stick deadzones (X/Y). So you will want to set both the X and Y axis deadzones.

    It's probably beyond what you're looking for, but each stick on a recognized controller is bound together into an Axis2D which exists in the Joystick class. You probably don't need to, but you can get the component X and Y axes from the Axis2D if necessary. This would be useful if you wanted to make a calibration tool that let you calibrate both axes simultaneously like in the Windows gamepad dialog.
     
    Last edited: Sep 15, 2015
  28. Maeslezo

    Maeslezo

    Joined:
    Jun 16, 2015
    Posts:
    331
    Hello!

    I think I would need #2. I need it because of I am implementing an Interface as a Rewired wrapper. I need to implement
    Code (CSharp):
    1. string[] GetActionAxis();
    2. string[] GetActionButtons();
    Thank you!
     
  29. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    It would probably be best if you just got all the Actions instead of only those that are mapped because a user could map more actions through a remapping UI and then you'd have to update your list. It would be bad to query this every frame and create an array because you'd be generating a lot of garbage.

    To get all Action names:
    Code (csharp):
    1. string[] GetAllActionNames() {
    2.     var actions = ReInput.mapping.Actions;
    3.     string[] names = new string[actions.Count];
    4.     for(int i = 0; i < actions.Count; i++) {
    5.         names[i] = actions[i].name;
    6.     }
    7.     return names;
    8. }
    To get all Action names mapped by a specific controller's buttons:
    Code (csharp):
    1.     string[] GetActionNamesMappedToControllerButtons(int playerId, ControllerType controllerType, int controllerId) {
    2.        
    3.         Player player = ReInput.players.GetPlayer(playerId);
    4.         if(player == null) {
    5.             Debug.LogError("Invalid player id!");
    6.             return null;
    7.         }
    8.  
    9.         List<string> names = new List<string>();
    10.  
    11.         foreach(ControllerMap map in player.controllers.maps.GetMaps(controllerType, controllerId)) {
    12.             foreach(ActionElementMap aem in map.ButtonMaps) {
    13.                 InputAction action = ReInput.mapping.GetAction(aem.actionId);
    14.                 if(action != null && !names.Contains(action.name)) names.Add(action.name);
    15.             }
    16.         }
    17.  
    18.         return names.ToArray();
    19.     }
    To get all Action names mapped by a specific controller's axes:
    Code (csharp):
    1.     string[] GetActionNamesMappedToControllerAxes(int playerId, ControllerType controllerType, int controllerId) {
    2.  
    3.         Player player = ReInput.players.GetPlayer(playerId);
    4.         if(player == null) {
    5.             Debug.LogError("Invalid player id!");
    6.             return null;
    7.         }
    8.  
    9.         List<string> names = new List<string>();
    10.  
    11.         foreach(ControllerMapWithAxes map in player.controllers.maps.GetMaps(controllerType, controllerId)) {
    12.             foreach(ActionElementMap aem in map.AxisMaps) {
    13.                 InputAction action = ReInput.mapping.GetAction(aem.actionId);
    14.                 if(action != null && !names.Contains(action.name)) names.Add(action.name);
    15.             }
    16.         }
    17.  
    18.         return names.ToArray();
    19.     }
    Or you could just return int[] array instead of string[] and get the actionId since its a bit faster than string comparison.
     
    Maeslezo likes this.
  30. Maeslezo

    Maeslezo

    Joined:
    Jun 16, 2015
    Posts:
    331
    Hello again,

    How could I change a layout through code?

    Something like:
    Code (CSharp):
    1. player.controllers.keyboard.ChangeLayout(string map, string layout);
    2. player.controllers.keyboard.ChangeLayout("Menu", "Production")
    Thank you
     
  31. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    Use the LoadMap functions:

    http://guavaman.com/projects/rewire...Rewired_Player_ControllerHelper_MapHelper.htm

    Only one Controller Map per category/layout is loaded into the Player on start. If you want to change to a different layout, you have to load the Controller Map in that category/layout from the data before it will exist in Player.
     
    Maeslezo likes this.
  32. Maeslezo

    Maeslezo

    Joined:
    Jun 16, 2015
    Posts:
    331
    Hello again,

    How could I know if a map is enabled or not?

    I know how to enable or disable a map
    Code (CSharp):
    1. player.controllers.maps.SetMapsEnabled(bool isEnable, string map);
    but I don't know how to figure out if a map is already enabled or not.

    Thank you.
     
  33. Maeslezo

    Maeslezo

    Joined:
    Jun 16, 2015
    Posts:
    331
    I answer myself (it is in your documentation, sorry, I didn't find it before:
    Code (CSharp):
    1.  // The manual way
    2.         foreach(ControllerMap map in player.controllers.maps.GetAllMapsInCategory(categoryName)) {
    3.             map.enabled = state; // set the enabled state on the map
    4.         }
     
    guavaman likes this.
  34. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    Glad you figured it out. I was away without access to a computer for the last 3 days.
     
  35. gegagome

    gegagome

    Joined:
    Oct 11, 2012
    Posts:
    392
    Hey there

    I bought your asset last night. Out of the box it worked with the new AppleTV.
    I tested the seven player demo and the accelerometer one and it works great.

    The problem is that I am having trouble making my car move with a modified copy of the accelerometer cube script.

    The car won't move no matter what despite having copied the cube's custom controller configurations of the Rewired panel to the car.

    https://gist.github.com/gegagome/c58f90d4ab2d077b3259

    Thanks
     
  36. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    Did you create a Custom Controller Map, assign the accelerometer axes to Actions, and assign that map to your Player?

    Look at the tilt example's Rewired Input Manager for reference.
     
  37. gegagome

    gegagome

    Joined:
    Oct 11, 2012
    Posts:
    392
  38. obsidian1269

    obsidian1269

    Joined:
    May 12, 2011
    Posts:
    24
    @guavaman I've got a quick and hopefully easy question for you...

    I'd like to know if I am able to determine the playerID based on input from all players such that I can make a single System Player GetButton check in my script and then determine which player pressed that button. This is for use on a player join screen and I was simply trying to avoid 4x the code to check for the A button for all 4 players separately. I've considered using a for loop that cycles through all 4 players constantly within the update function but that just feels dirty to me...
     
  39. AbstractionGames

    AbstractionGames

    Joined:
    Feb 12, 2014
    Posts:
    24
    Dear @guavaman ,

    I'm working on porting a Unity 4.3.7f1 project to Xbox One, which is using Rewired 1.0.0.59U4. However, whenever I run a build on Xbox One, it crashes on creating an instance of the Rewired Input Manager.

    I've isolated the problem to it being Rewired because I created an empty project with just a cube and Rewired, and running the project on Xbox One causes the same crash. It builds just fine though.

    I've narrowed it down to the following error message:

    When I make sure that no instance of the Rewired is create, both the project I'm working on and the empty project run just fine.

    I've made sure that all the necessary plugins are in Plugins/XboxOne and I've also got all the imports in a folder called X1Assemblies. Am I missing anything here?

    Thanks in advance!

    EDIT:

    Fixed by updating to Rewired 1.0.062U4 or higher!
     
    Last edited: Sep 23, 2015
  40. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    No, sorry, there is no way to do that. System Player is another Player. By assigning the joysticks to it and calling systemPlayer.GetButton, you're getting the Action value for the System Player only and none of the other players. This is how Rewired's player-based system works. Each player is separate and tracks his own distinct list of Actions.
    Code (csharp):
    1. IList<Player> players = ReInput.players.Players;
    2. for(int i = 0; i < players.Count; i++) {
    3.   if(players[i].GetButtonDown("SomeAction")) {
    4.     // do something
    5.   }
    6. }
     
  41. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    You did not show the Custom Controller tab on the Player 0 page where you assign the Controller Map to the Player. Even though you assigned the Custom Controller itself to the Player, if you do not assign the controller map you created to Player 0 and set it to be enabled on start, you will get no input because there is nothing to map the Actions to the elements in the Custom Controller.

    Follow the quick start and you will see how controller maps are assigned:
    http://guavaman.com/projects/rewired/docs/QuickStart.html
     
    Last edited: Sep 24, 2015
  42. Diab1O

    Diab1O

    Joined:
    Mar 31, 2013
    Posts:
    318
    Hi!
    Help me please!
    When I get in Input Manager -> Joystick Maps, I get the error:
    http://joxi.ru/gkrDkaGcd6njAp
    I tried to reinstall the plug-in, but do not fix it.

    Sorry for my English! :)
     
  43. gegagome

    gegagome

    Joined:
    Oct 11, 2012
    Posts:
    392
    There was no change after adding the Custom Controller to Player0.

    Let lines I'm not including are:
    Code (CSharp):
    1.  
    2. [AddComponentMenu("")]
    3. [RequireComponent(typeof(Demos.TouchControllerExample))]
    4.  
    and

    Code (CSharp):
    1. Screen.orientation = ScreenOrientation.Landscape;
    This is my updated script:
    https://gist.github.com/gegagome/c58f90d4ab2d077b3259

    Thanks


     

    Attached Files:

  44. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    You didn't add a Custom Controller map to the Player, you added a Joystick Map. They are not the same thing. Joystick Maps are used for physical devices (USB or Bluetooth). Keyboard Maps are used for the Keyboard. Mouse Maps are used for the Mouse. Custom Controller maps are used for Custom Controllers.

    Look at the attached picture:

    CustomControllerMap.png
     
  45. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    How did you reinstall the plugin? Delete the entire Assets/Rewired folder, then import Rewired from the Asset Store or from a Unitypackage file. Do not copy Rewired from a zip or from another project folder. After you install it, run the setup script manually if it doesn't run from Window -> Rewired -> Setup -> Run Installer. Allow the installer to add the Input Manager settings when it asks.

    If you still get the error, delete the Rewired Input Manager from the scene and create a new one. (Note that the Rewired Input Manager contains your configuration settings. By deleting it, you are deleting your configuration data and will have to remake it.)

    Of course back up your project first.
     
  46. Diab1O

    Diab1O

    Joined:
    Mar 31, 2013
    Posts:
    318
    It helped, thank you!
     
  47. Diab1O

    Diab1O

    Joined:
    Mar 31, 2013
    Posts:
    318
    One more question.
    When I select a ControllerDataFiles file in the Project, I get the error: http://joxi.ru/aD2PyNGTWzpdA3

    It will not hurt me in the future work?
     
  48. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,625
    1. What version of Unity are you using?
    2. Is this Windows or OSX?
    3. What version of Rewired are you using? (Window -> Rewired -> Help -> About)
    4. Did you get Rewired from the Unity Asset Store or somewhere else?

    I have never seen an error like this. I have tested all versions up to 5.2 and none exhibit this error. The error is being generated by the Rotorz reorderable list system that makes a reorderable list in the inspector.
     
  49. Diab1O

    Diab1O

    Joined:
    Mar 31, 2013
    Posts:
    318
    Unity 5.0.1p3
    Windows 7
    1.0.0.67.U5
    from the Unity Asset Store
     
  50. longroadhwy

    longroadhwy

    Joined:
    May 4, 2014
    Posts:
    1,551
    Hello Guavaman,

    One year ago today that you introduced us to your new product called Rewired which revolutionized how input was done. It is really amazing how many controllers you support today. The Control Mapper GUI screens is one great editions to the product. The Flight Controllers is what I like best of course. Keep up the good work and thanks for Rewired.

    http://guavaman.com/projects/rewired/docs/SupportedControllers.html

    Rewired_Controllers.JPG
     
    Last edited: Sep 25, 2015
    Karearea likes this.