Search Unity

Rewired - Advanced Input for Unity

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

  1. huulong

    huulong

    Joined:
    Jul 1, 2013
    Posts:
    224
    Oh, I forgot to check the website first, thanks! I didn't really need .Net 4.6 anyway, so that should work fine.
     
  2. ZimM

    ZimM

    Joined:
    Dec 24, 2012
    Posts:
    963
    Hi @guavaman,

    I haven't used Rewired for a long time, but I remember there was an issue with the experimental .NET 4.6, that resulted in Rewired always falling back to Unity input system instead of using native input (talking about Standalone). So basically, native standalone input was only working with .NET 3.5. Did you end up making some kind of workaround, or did Unity fix their issue?
    I've read the Known Issues and the changelog, but wasn't able to find any relevant information.
     
  3. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    I'm not sure how you could have looked at Known Issues and not found any relevant information unless you are not looking at the web documentation and are reading the documentation from an older version of Rewired.

    From the Known Issues page:

    http://guavaman.com/projects/rewired/docs/KnownIssues.html#net46-windows-tilemap-exception
    http://guavaman.com/projects/rewired/docs/KnownIssues.html#net46-windows-touch-controls
    http://guavaman.com/projects/rewired/docs/KnownIssues.html#net46-windows-freeze-on-exit
    http://guavaman.com/projects/rewired/docs/KnownIssues.html#unity-2011-dot-net-46-editor-errors
    http://guavaman.com/projects/rewired/docs/KnownIssues.html#osx-net46-initialization-exception

    Each topic explains the issue and the current state of Unity and Rewired regarding the issue. If a fix has been made to Unity or a workaround has been added to Rewired, it is noted there.

    The short answer is, it mostly works in the newest version of Unity on Windows but there are still bugs like freezing on application exit, it doesn't work at all on OSX, and I haven't tested it on Linux.
     
  4. ZimM

    ZimM

    Joined:
    Dec 24, 2012
    Posts:
    963
    Yup, I've read all that. Sorry, I guess I should have narrowed it down - I'm currently interested in Windows only, using latest Unity 2017.1. None of those issues you listed say anything about regular native input not working with this combination (well, except touch controls, but I don't need those). And, there was an issue with native input not working with .NET 4.6 at all, but it is not listed.
    So it seems like native input does indeed work with no issues with latest Unity 2017.1 on Windows when using .NET 4.6? Thank you.
     
  5. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    The part under "Q: But it used to work before updating Rewired to 1.1.3.0+:" addresses it. Prior to 1.1.3.0, it fell back to Unity input silently due to another issue. At 1.1.3.0, the issue causing it to fall back to Unity input was fixed and it was able to initialize native input, thereby revealing the other bugs in the .NET 4.6 backend. The issues on the page are in reference to native input (since that's the default setting and what most will be using when they run into one of these issues). The only known .NET 4.6 backend bug without native input enabled is the touch controls one which was worked around.

    After 1.1.3.0, Rewired does run in native mode, but depending on the version of Rewired and Unity, all those listed issues may apply. Rewired is currently at version 1.1.7.9 (Asset Store only has up to 1.1.7.8 due to an ongoing problem with administrator backend.)

    There is no version of Unity that will work perfectly with native input enabled because the .NET 4.6 experimental backend still has bugs. Those that were possible to workaround in my code were as noted in those links, but others such as the crash on application exit could not be worked around and still exist on the very latest versions of Unity and Rewired. Unity has notified me that it has been fixed but they have not given me an ETA or version number for the fix.

    Sorry if that wasn't clear.
     
    Last edited: Nov 8, 2017
  6. mfCleRIC

    mfCleRIC

    Joined:
    Jan 14, 2016
    Posts:
    7
    Hello, guavaman!
    We want to use Rewired for HOTAS joysticks (game with airplanes).
    The main problem with the new joysticks, which have not yet been added to the templates.
    When the player sets up his joystick in the control menu instead of the usual "Stick X" \ "Stick Y" \ "Stick Rotate", he will see "Axis 0" \ "Axis 1" \ "Axis 5" (for each controller these values can be different).
    Can I somehow find out what each axis / button on a new controller means that has not yet been added to the templates?
    What information about the joystick can be obtained through the code to set it remotely, if the player could not do it?
     
  7. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    I think you are referring to "controller definitions" and not "templates". A "template" in Rewired is different from a controller definition.

    No, you cannot add controller definitions after publishing. In addition, you cannot find out what each axis number refers to without going through completely manual setup of each axis including names and calibration. None of this information is available from the HID devices and exactly why Rewired includes all these controller definitions which were all created by hand. Rewired requires the extra steps of creating Element Identifiers for each element on the controller, special setup for 4 and 8-way hats, special setup for sticks (for radial axes), and more. It would not be a user-friendly process for the end user.

    Rewired already supports unknown controllers. The user can map them as they like and save / load the configuration. You have to provide them with a means to remap their controllers such as Control Mapper. Elements will be named Axis 0, 1, 2, etc. but everything will work.
     
  8. zeekindustries

    zeekindustries

    Joined:
    Jun 4, 2010
    Posts:
    19
    Hey Guavaman! awesome pack for Input, we are currently evaluating the system and so far it's been an incredible experience.

    We are currently porting some of our project to this system, and we rely a lot on EventDelegates which is a breeze to see that Rewired works effortlessly with this.

    However we are a little bit stuck on finding how to do the equivalent to get an Event for only the frame when an axis becomes non-zero. As of now we managed to extract the event with InputActionEventType.AxisActive but this is firing the Event every time the axis is pressed which is of course the expected behavior. We need to register only the moment is held.

    If you could get back with some advice that would be really appreciated.

    Thanks a lot and congratulations on this great tool.

    Cheers.
     
  9. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    There is no such event. A joystick axis is an absolute coordinate mode axis and therefore returns a value every single frame. If you only respond to the first frame it is non-zero, you will miss changes in the value of that axis as it changes from 0.9 to 1.0, etc. The only way to get the event you're looking for is to use the ButtonJustPressed event and set the Button Dead Zone on the Input Behavior assigned to the Action to a very low value.
     
  10. mfCleRIC

    mfCleRIC

    Joined:
    Jan 14, 2016
    Posts:
    7
    Hello, guavaman!
    I tested output from function GetAxis for some joysticks for StickRotateZ and Throttle.
    Unfortunately, some joysticks return values from -1 to 1, other from 0 to 1 and other from -0.86 to 0.27 (maybe these joysticks were broken).
    How it is possible to work standard with all joysticks?
    I want to see for all joysticks output from -1 to 1 (for example).
     
  11. longroadhwy

    longroadhwy

    Joined:
    May 4, 2014
    Posts:
    1,551
    Can you name the joysticks or HOTAS systems you are talking about? It is good to know what brand you are talking about specifically. There is Saitek X-55 throttle, Saitek X-56 throttle, CH Pro Throttle, Warthog Throttle, or ThrustMaster TWCS throttle for example.

    CH Pro Throttle is one of those 0 to 1 values.

    Are you running on the Windows, MAC or Linux platform? You did not specify in your posting.
     
  12. mfCleRIC

    mfCleRIC

    Joined:
    Jan 14, 2016
    Posts:
    7
    Hi!
    1. Thrustmaster 'Top Gun Afterburner II'
    2. Mad Catz V1
    3. Thrustmaster USB-Joystick
    4. Genius USB F-23
    Windows 10 64 bit platform.

    I changed field 'Input source' to 'Direct Input' and now all values from -1 to 1. I hope it work on all controllers?
     
    Last edited: Nov 13, 2017
  13. longroadhwy

    longroadhwy

    Joined:
    May 4, 2014
    Posts:
    1,551
    Direct Input has been around a long time so I expect it work on most joystick controllers without any problems. My PUMA helicopter controller (released in 2016) only works partially on raw input but works perfectly on Direct Input. The manufacturer had only tested it in Direct Input (using X-plane 10 and Microsoft Flight Simulator) and never in raw input so they never saw the issue I had with raw input.

    It is just amazing the huge number of joysticks out there. Never heard of Genius USB F-23 before.

    What type of flight game are you making?
     
  14. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    This is just a calibration issue. Using Raw Input does not apply Direct Input calibration (Windows Control Panel game controller calibration.) Joysticks that do not come with controller definitions are not always pre-calibrated and the user will have to do so at runtime. http://guavaman.com/projects/rewired/docs/HowTos.html#calibrating-controller-axes
     
  15. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    The only one of these that is recognized is the Thrustmaster USB joystick. That one should work out of the box without manual calibration.
     
  16. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    The other way you could do it is to do your action on the AxisActive event and then set a flag to ignore subsequent ones, then unset the flag on the AxisInactive event.
     
  17. longroadhwy

    longroadhwy

    Joined:
    May 4, 2014
    Posts:
    1,551
    Actually I thought it was two of those of those controllers were supported directly based on @mfCleRIC list.

    1. Thrustmaster 'Top Gun Afterburner II'
    2. Mad Catz V1
    3. Thrustmaster USB-Joystick
    4. Genius USB F-23

    I am thinking the Mad Catz V1 is the same controller as "Mad Catz C.Y.B.O.R.G. V1" on your controller list.

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

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    True. It's probably the same based on the identifying information I see for the Cyborg V1.
     
  19. zeekindustries

    zeekindustries

    Joined:
    Jun 4, 2010
    Posts:
    19
    Thanks a lot for the quick response, and yeah, so far this was the way we went around this.
    Already purchased the asset and very happy to integrate it in our project :D
     
  20. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    Thanks!

    Can I ask what you are using this "axis just activated" event for?
     
  21. Homer-Johnston

    Homer-Johnston

    Joined:
    Nov 26, 2012
    Posts:
    46
    I'm building a custom input management screen and I want to create temporary copies of controller maps which I can edit before copying them over to the player's controller maps and saving. Currently I'm simply using something like:

    JoystickMap tempMap = new JoystickMap(playerJoystickMap)


    However this only seems to copy button maps, not axis maps, into the copy. I tried to check by iterating through the AllMaps property of both maps and I got this (notice axis elements are missing from second set of messages) https://i.gyazo.com/3a43ad5a97d55500ee63a8e67954aeaa.png ...

    Any help would be appreciated. Keep up the great work!
     
  22. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    The constructor has a bug which I will fix. Apart from that, I would recommend against the approach because there is a lot of internal baked data inside the Controller Map that is related to the device and the Player it belongs to. A safer approach would be to save the Controller Map to XML first, then if the user cancels, reload it from XML.

    http://guavaman.com/projects/rewire..._ControllerHelper_MapHelper_AddMapFromXml.htm
    http://guavaman.com/projects/rewired/docs/api-reference/html/M_Rewired_ControllerMap_ToXmlString.htm
     
    Homer-Johnston likes this.
  23. spraycanmansam

    spraycanmansam

    Joined:
    Nov 22, 2012
    Posts:
    254
    Hey @guavaman,

    I've recently integrated Rewired into our project and like it a lot. I'm just finishing up our input mapping screen and hit a snag -- We have some axis actions that are used between multiple maps categories, ie: 'Move Vertical' and 'Move Horizontal' are used by Default and Vehicle.

    In our input mapping screen axis actions are split into positive and negative (similar to your example). When an action is remapped I'm trying to remap any matching actions found in all map categories to the same element. This works fine for button actions. However when remapping a positive or negative axis of an axis button I can only manage to remap the positive axis of the action in other map categories.

    Could you point me in the right direction to do this cleanly?
     
  24. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    There's nothing that would block you from remapping positive and negative axis. It would depend entirely on the methods you're using to create the mappings. I would have to see all your code to be able to determine where you've made a mistake.

    The examples I've provided show a different approach using a separate shared category for the common controls that are not disabled when switching modes. This is a better approach and the one I recommend.
     
  25. Homer-Johnston

    Homer-Johnston

    Joined:
    Nov 26, 2012
    Posts:
    46
    Last edited: Nov 16, 2017
  26. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    This is a very, very old bug that was never visible until a change to the Controller Template system in 1.1.7.0. It's probably been around since 1.0.0.0.

    1.1.7.0:
    - Controller Templates now support mapping the same template element to multiple controller elements.

    The template definition for the Xbox 360 controller has 2 copies of the Right Trigger. This was never visible before because templates only supported 1 mapping per element. This had to be changed for racing wheels so that a Reverse Gear element could be added and allow that to work even if there was already a mapping for "Shifter 7" so that wheels where shifter 7 was not the reverse gear would work.

    Remove the redundant mapping from the Dual Analog Gamepad Template:

    rewired-delete-template-element.png
     
    Homer-Johnston likes this.
  27. Homer-Johnston

    Homer-Johnston

    Joined:
    Nov 26, 2012
    Posts:
    46
    Fantastic. Thank you for providing such great support!
     
    guavaman likes this.
  28. Raidenwins

    Raidenwins

    Joined:
    Dec 18, 2012
    Posts:
    132
    What is the best practice for handling the situation when I have an action which requires an input consisting of two buttons being pressed at the same time? Let's say something like D-Pad Down + Action Bottom Row 3, for example.
     
  29. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    Hi,

    You'll find the recommended method here - How To's - Handling multi-button Actions
     
    Raidenwins likes this.
  30. Raidenwins

    Raidenwins

    Joined:
    Dec 18, 2012
    Posts:
    132
  31. SyntaxSpeedway

    SyntaxSpeedway

    Joined:
    Sep 9, 2015
    Posts:
    3
    I've been spending the last two weeks learning Rewired and incorporating it into my project, and I am currently up to displaying the names of keyboard buttons that are tied to player actions using the instructions form the "how to" page, and it's been working perfectly so far. I would like to get the keys that are tied to an axis type action, and then filter them based on whether they have a positive or negative contribution to the axis (e.g: separately listing the "Move Left" and "Move Right" keys even though they all fall under the "Horizontal Movement" axis), but my attempts so for have been unsuccessful so far. What would be the best way to implement this?
     
  32. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    Just check the axisContribution property of the ActionElementMap.

    Code (csharp):
    1. foreach(var aem in player.controllers.maps.ButtonMapsWithAction(ControllerType.Keyboard, 0, "ActionName", true)) {
    2.     if(aem.axisContribution == Pole.Positive) {
    3.     } else {
    4.     }
    5. }
     
  33. SyntaxSpeedway

    SyntaxSpeedway

    Joined:
    Sep 9, 2015
    Posts:
    3
    Thank you! I tried something similar to this at first but my logic was bad so I thought there was something else I was missing.
     
  34. StephenMorris

    StephenMorris

    Joined:
    Mar 25, 2013
    Posts:
    35
    Somewhat similar to the above, is there a way to check if the input is coming in from the mouse? I've got a game where the cursor can be controlled by either mouse cursor or the right joystick on the controller (360, Xbox One, PS4). When using the mouse, cursor movement is nice whereas the joystick is rather slow. Multiplying the delta to nicer levels for joystick then makes mouse control impossible.

    Is there a way of detecting the delta solely supplied by the mouse? A workaround could be having the mouse using different actions and then listening to that independently but would love to know otherwise.

    Many thanks,
    Stephen
     
  35. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    See the documentation here:
    http://guavaman.com/projects/rewired/docs/HowTos.html#get-contributing-input-sources
    http://guavaman.com/projects/rewired/docs/HowTos.html#last-used-controller

    You can also set the Mouse X/Y Sensitivity and Joystick Sensitivity separately:
    http://guavaman.com/projects/rewired/docs/InputBehaviors.html

    You can also use this:
    http://guavaman.com/projects/rewire...load_Rewired_Player_GetAxisCoordinateMode.htm

    Code (csharp):
    1. if(player.GetAxisCoordinateMode("Action") == AxisCoordinateMode.Relative) { // delta
    2. }
     
    Last edited: Nov 28, 2017
  36. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    Rewired 1.1.8.0 is available for download for registered users. If you would like to receive early access to updates, please contact me here. The update has been submitted to the Unity Asset Store and will be available when they approve it.

    Please see Updating Rewired before updating.

    Release notes:

    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.
     
  37. Petethegoat

    Petethegoat

    Joined:
    Jun 12, 2013
    Posts:
    39
    Was trying to do tap vs hold and managed to find this without too much trouble, but I'd recommend adding it to the How To page. :)
     
  38. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    Okay. I added it here.
     
    Petethegoat likes this.
  39. Freznosis

    Freznosis

    Joined:
    Jul 16, 2014
    Posts:
    298
    Whenever I update Rewired I usually deleted the whole folder, and reimport then restart Unity once the import is done. This has worked fine in the past but with the new update it seems Rewired may have broke or I did something it didn't like. I'm getting this error/warning when I try to run the install process.

    Code (CSharp):
    1. Invalid AssetDatabase path: /Data/EditorSettings.asset. Use path relative to the project folder.
    2. UnityEditor.AssetDatabase:CreateAsset(Object, String)
    3. Rewired.Editor.Installer:‌‫‪‪‫‌
‍‪‬‍‫‏‮‭‎‬‏

‌
‭‫‍‮(Object, String)
    4. Rewired.Editor.Installer:xkpyyHKTUmnHAcTPyEmcXnSdCdFE(String)
    5. Rewired.Editor.Installer:uFbMdpRjYzoRqoXMydFnRmZzgug()
    6. Rewired.Editor.Installer:Install(Boolean, InstallOptions)
    7. Rewired.Editor.MenuItems:‫‭‬‮‎‮
‮‫‌‭‎‎‍‌‪‬‮‮‭‫‌‭‮(Boolean, InstallOptions)
    8. Rewired.Editor.MenuItems:Window_RunInstall()
    9.  

    Code (CSharp):
    1.  
    2. Couldn't create asset file!
    3. UnityEditor.AssetDatabase:CreateAsset(Object, String)
    4. Rewired.Editor.Installer:‌‫‪‪‫‌
‍‪‬‍‫‏‮‭‎‬‏

‌
‭‫‍‮(Object, String)
    5. Rewired.Editor.Installer:xkpyyHKTUmnHAcTPyEmcXnSdCdFE(String)
    6. Rewired.Editor.Installer:uFbMdpRjYzoRqoXMydFnRmZzgug()
    7. Rewired.Editor.Installer:Install(Boolean, InstallOptions)
    8. Rewired.Editor.MenuItems:‫‭‬‮‎‮
‮‫‌‭‎‎‍‌‪‬‮‮‭‫‌‭‮(Boolean, InstallOptions)
    9. Rewired.Editor.MenuItems:Window_RunInstall()
    10.  

    Not sure what is causing this. I've completely deleted Rewired, updated, restart, reimported without restarting, followed your small tutorial, etc, and the same stuff is happening. Any ideas? I'm on Unity 5.6.4

    ---------------------

    Edit: Seems like another error popped up after restarting about Rewired not being able to find the Internal folder. I haven't moved the Rewired folder and it's always been in the root of the project and I can confirm the Internal folder is there also.

    Code (CSharp):
    1.  
    2. Rewired: Cannot find the Rewired/Internal folder. If you have deleted or modified the GUID on this folder, you must reinstall Rewired.------- Rewired System Info -------
    3. Unity version:
    4. Rewired version: 1.1.8.1.U5
    5. Platform: Unknown
    6. Using Unity input: False
    7.  
    8. UnityEngine.Debug:LogError(Object)
    9. Rewired.Logger:LogErrorNow(Object, Boolean)
    10. Rewired.Logger:LogError(Object, Boolean)
    11. Rewired.Logger:LogError(Object)
    12. Rewired.Editor.EditorManager:‮‭‮‏‭‫‭‫‫‬‪‬‏
‮‬
‪‍‍‪‎‮(Object)
    13. Rewired.Editor.EditorManager:itijMBRIxpNmksgeXfmrnGsYpoW()
    14. Rewired.Editor.EditorManager:lyHbtYhdZWiYnDpufQUlGDHDeqea(Boolean)
    15. Rewired.Editor.EditorManager:yMZCdgfJBeDhgkQbjleQGqxaZXRN()
    16. UnityEditor.EditorApplication:Internal_CallUpdateFunctions()
    17.  
     
    Last edited: Nov 30, 2017
  40. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    Changes were made to the installer system in 1.1.8.0 to use a folder GUID to locate the Rewired folder (because people like to move it and Rewired needs to know where it is) instead of using Rewired_Core.dll as a fixed locator because some users wanted to move the Rewired_Core.dll and doing so before would cause Rewired's editor scripts to fail because they needed Rewired_Core.dll to be in a fixed location relative to the base Rewired folder. Seeing this, it is clear that some versions of Unity do not preserve the GUID of folders in the package making this new technique completely fail. There is no way to fix this. You will have to install an older version of Rewired. I have no choice but to go back to the old system and tell users that they simply cannot move Rewired_Core.dll. This means the version of Rewired on the Unity Asset store is broken for Unity 5.x users. (Unity 2017 doesn't appear to have this issue.)
     
    Last edited: Nov 30, 2017
  41. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    There is actually a way you can make it work... Enable visible meta files and open Assets/Rewired/Internal.meta

    This is done by selecting Edit->Project Settings->Editor in the application menu and enabling External Version Control support by selecting Visible Meta Files in the dropdown for Version Control.

    Change the GUID in the .meta file to:
    8cdcfdd141b51d5458f981aaf449fd9f
     
    Last edited: Nov 30, 2017
  42. Freznosis

    Freznosis

    Joined:
    Jul 16, 2014
    Posts:
    298
    That has indeed fixed the issue. I suppose for now users can just manually change the guid until you use a different solution. Is there a reason you don't want to use the plugins folder for your .dll? It seems pretty universal. :)
     
  43. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    Lots of reasons. First, those who already have it installed in the root folder would have to delete to get it to extract to plugins. Second, Rewired supports Unity 4.3. In versions of Unity 4.x and even some 5.x, Editor folders inside subfolders of Plugins did not compile into the editor assembly, requiring you to break your asset out into having a separate Editor folder separate from the asset folder so it can reside directly in Plugins/Editor. There are other reasons as well.

    Even if it were in Plugins, that wouldn't help because you could still put it in Plugins/Something/Rewired. It MUST know where its folder is so it can do file management (extracting packs, documentation, etc.)

    I have submitted another update to the asset store. I hope they can rush it through.
     
    Freznosis likes this.
  44. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    Rewired 1.1.8.2 is available for registered users to download on the website now. If you'd like early access to updates, please contact me here.

    1.1.8.2:

    Bug Fixes:
    - Reverted changes to editor system in 1.1.8.0 which caused installation problems in Unity 5.x.
     
  45. Heinrix

    Heinrix

    Joined:
    Nov 9, 2014
    Posts:
    4
    Hi
    I'm just playing around the your free trial and tutorials, its very impressive so far.
    I'm making a local multiplayer game and I want the keyboard and mouse to be a controller option for any player but I'm not sure if there is a simple way for it to be assigned to 1 player and every other player to use a gamepad.
    Is this something I will have to figure out for myself via code or is something already in place for this?
    Thanks very much for your time.
     
  46. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
    Rewired does not treat portions of the keyboard as Joysticks. Joysticks, Keyboard, and Mouse are completely separate systems. Joystick auto-assignment to Players is only for Joysticks. It does not apply to Mouse, Keyboard, or Custom Controllers.

    You have to manage what keyboard maps are assigned to each Player and assign joysticks based on which Players are not using the keyboard. You can assign joysticks yourself or exclude Players who are using the keyboard from auto-assignment.
     
  47. Heinrix

    Heinrix

    Joined:
    Nov 9, 2014
    Posts:
    4
    That looks very helpful thanks, I will look into those links tomorrow, thank you for such a quick reply.
     
  48. jjejj87

    jjejj87

    Joined:
    Feb 2, 2013
    Posts:
    1,117
    Hi, quick question, is this frame independent input? And how is the input lag compared to Unity?

    I am trying to work on a rhythm game but the input lag is just not helping.

    Thanks!
     
  49. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,632
  50. GfK

    GfK

    Joined:
    Aug 15, 2014
    Posts:
    107
    Just updated to latest version and I have a problem.

    When I open my project, or run my project then stop it, I get this:
    <error> Rewired: Cannot find the Rewired/Internal folder. If you have deleted or modified the GUID on this folder, you must reinstall Rewired.------- Rewired System Info -------
    <warning> Invalid AssetDatabase path: /Data/EditorSettings.asset. Use path relative to the project folder.
    <error> Couldn't create asset file!

    I've deleted the Rewired folder, re-imported, but the Setup/Install options gives the same error above.

    I've also deleted the Library folder, that didn't help either.

    How do I fix this?

    [edit] Never mind - I found the answer here. Manually editing the GUID in the meta file worked.
    http://guavaman.com/projects/rewired/docs/KnownIssues.html#installer-bug-1181
     
    Last edited: Dec 1, 2017