Search Unity

Rewired - Advanced Input for Unity

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

  1. QbAnYtO

    QbAnYtO

    Joined:
    Dec 18, 2016
    Posts:
    223
    Right, but my keyboard and mouse controls don't replicate this issue, therefore it looks like its related to your asset. I'll keep tinkering with it. Any advice?


     
  2. QbAnYtO

    QbAnYtO

    Joined:
    Dec 18, 2016
    Posts:
    223
    Actually I figured out how to apply controls without using the asset. Directly from the input system. It’s actually pretty easy.

     
  3. KarlKarl2000

    KarlKarl2000

    Joined:
    Jan 25, 2016
    Posts:
    606
    Hey guys and @guavaman

    Does anyone have a better solution? I'm implementing the control mapper and would like to hide a set of buttons. (Remove, Calibrate, Assign Controller)
    Remove.jpg
    remove2.jpg

    I tried disabling these bools, but it didn't work. Is it somewhere else that I missed?

    The work around I came up with, is to disable the ControllerGroup gameobjects at runtime.
    remove3.jpg


    But I'm not sure if that will cause navigation problems between buttons.
    nav.jpg


    In Unity it doesn't throw errors, it just doesn't feel like the correct solution to me?

    Thanks for the help! :)
     
  4. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    The toggles you are disabling do not apply to what you are trying to disable.

    https://guavaman.com/projects/rewired/docs/ControlMapper.html#inspector-controller-options

    Show Assigned Controllers
    Show the Assigned Controllers group? If joystick auto-assignment is enabled in the Rewired Input Manager and the max joysticks per player is set to any value other than 1, the Assigned Controllers group will always be displayed.

    Show Assigned Controllers Group Label
    Show the label for the Assigned Controllers button group?

    Show Controller Group Label
    Show the label for the Controller button group?

    Show Controller Name Label
    Show the label for the current controller name?

    Control mapper does not support disabling the ability to assign or unassign controllers from Players because doing so is a critical error and will result in problems for your users. See Best Practices:
    https://guavaman.com/projects/rewired/docs/BestPractices.html

    Always provide some means for your users to change controller assignments. It is especially important if you are making a multi-player game. You cannot know what devices, physical or virtual, will be present on a user's system, appear as Joysticks to Rewired, and be assigned to a Player. Device emulation software (VJoy, DS4Win, SCPToolkit, etc.) and certain device drivers can and frequently do cause problems by creating extra, non-functional virtual devices. Allowing the user to make their own controller assignments solves this issue as well as making it possible for users to swap controllers, etc. You can either include Control Mapper directly in your game or create your own system.
     
  5. RB_lashman

    RB_lashman

    Joined:
    Aug 15, 2013
    Posts:
    92
    is there a way to change the active controller map layout via Bolt?
     
  6. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    There is no such thing as an "active controller map layout" in Rewired. A Layout is simply a tag for identifying which controller map to load from the Rewired Input Manager when you load controller maps. There is nothing stopping you from having 20 controller maps loaded all in the same Map Category with different Layouts.

    Layout Manager was created later to help manage Controller Maps so you could achieve something like an "active controller map layout" if you so choose.

    All of Bolts functions are auto-generated by Bolt from the Rewired API. Apart from a handful of events which Bolt does not automatically generate, the entire API is the exact same as in code. There is no Bolt-specific documentation or Bolt-specific API.

    https://guavaman.com/projects/rewired/docs/HowTos.html#managing-controller-maps-runtime
    https://guavaman.com/projects/rewired/docs/HowTos.html#loading-controller-maps-runtime
     
    RB_lashman likes this.
  7. RB_lashman

    RB_lashman

    Joined:
    Aug 15, 2013
    Posts:
    92
    yeah, i already read that bits in the documentation ... but still have no idea how to do it with the nodes

    there is no "LoadMap" node ... i'm just completely lost, unfortunately :(
     
  8. KarlKarl2000

    KarlKarl2000

    Joined:
    Jan 25, 2016
    Posts:
    606
    Alright good to know. Thanks!
     
  9. CHOO5D2

    CHOO5D2

    Joined:
    Jan 3, 2019
    Posts:
    29
    Hi, for my game, my mouse control the camera view like a first person character. When i switches to using a joystick, it is very slow and i need to multiple the axis value to run like the mouse control.

    Is it normal?
     
  10. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    It all depends on how you are processing the input you are receiving:
    https://guavaman.com/projects/rewired/docs/HowTos.html#relative-absolute-axes
     
  11. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    Your problem is with Bolt, not Rewired. You have to setup Bolt to give you access to the classes you want to use.

    https://guavaman.com/projects/rewired/docs/Integration.html#Bolt



    If all you do is add the 6 classes I show in this example, you will only get access to functions in those 6 classes. What you are trying to access is not included in those 6 classes, so you have to add the classes you want so Bolt will generate the functions. I suggest you get support on Bolt. I'm not a Bolt expert and don't even know if it works the same way today as it did when I first wrote this.

    Look at the API reference for the functions you want to call and add the classes that contain those functions to Bolt and then have it generate the functions.
     
    RB_lashman likes this.
  12. RB_lashman

    RB_lashman

    Joined:
    Aug 15, 2013
    Posts:
    92
    ahhh, well that explains that! ;) at least now i know where to look ... thanks! :)
     
  13. RB_lashman

    RB_lashman

    Joined:
    Aug 15, 2013
    Posts:
    92
    @guavaman ... and now i have another problem :p

    i noticed something today ... the project is running at 60fps, and the controls for both the mouse and gamepad look are set to a value that feels good to play ... but when i limit the framerate to 20fps (without changing anything else), the mouse look still works at the same speed, but the gamepad look now runs at 1/3rd of the speed i've set it to

    is there a specific reason why it's doing that?
     
  14. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    This is all in your processing of the input code, not in the values coming back from Rewired. How to use input values is universal to all input systems. I suggest you look up tutorials on handling input. Unity has a ton of them. The same concepts apply.
    • An Absolute axis with a limit of -1 to +1 returns that value every frame.
    • If you simply apply that value to something to move it, how often that value is applied is dependent upon the frame rate. The faster the frame rate, the more times that value is applied.
    • All examples shown in all Unity tutorials tell you to multiply the value by Time.deltaTime. This scales the input value based on how long the last frame took to render.
    • DO NOT multiply a Relative axis (mouse) by Time.deltaTime.
    • https://guavaman.com/projects/rewired/docs/HowTos.html#relative-absolute-axes
     
    RB_lashman likes this.
  15. RB_lashman

    RB_lashman

    Joined:
    Aug 15, 2013
    Posts:
    92
    it works perfectly now ... thank you so much! :)
     
  16. Meowx

    Meowx

    Joined:
    Oct 10, 2015
    Posts:
    33
    Heya, is there a built-in way to accelerate input on an axis over time? I'm setting up a menu system and would like the user to be able to hold the directional buttons for just a single input at first and then it starts ramping up to move through a selection menu more quickly.
     
  17. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    No there isn't.

    The Rewired Standalone Input Module implements the same options as the Unity Standalone Input Module:
    https://guavaman.com/projects/rewired/docs/RewiredStandaloneInputModule.html

    Repeat Delay
    Input Actions Per Second

    If that's not sufficient for your purpose, you will have to implement the functionality.
     
  18. Meowx

    Meowx

    Joined:
    Oct 10, 2015
    Posts:
    33
  19. CHOO5D2

    CHOO5D2

    Joined:
    Jan 3, 2019
    Posts:
    29
    Hi, how do I localize the descriptive names for the control mapper? thanks
     
  20. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
  21. matthew-holtzem

    matthew-holtzem

    Joined:
    Sep 1, 2016
    Posts:
    40
    Is there a way to get the TouchJoystick component to ignore the Event System's drag threshold?
     
  22. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    Touch Joystick is completely built on events generated by the Event System. It does not read Input.GetTouches directly and only response to the various IOnBlah events the Event System generates.
     
  23. matthew-holtzem

    matthew-holtzem

    Joined:
    Sep 1, 2016
    Posts:
    40
    PointerEventData has a parameter called "useDragThreshold". If this is set to false in OnInitializePotentialDrag then Drag functions will be called without prior to achieving the drag threshold. I've used this before for cases where there was no potential for conflict between button clicks and drags and I needed more quick responding drag interactions.

    It would be great to have this exposed as an option for Touch Joystick. I can't add it myself since it's closed source and it would be a real drag to have to re-implement the whole component just for this
     
  24. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    The touch components do not support this property. I have just made a build today after having worked for the last month on the Game Core plugin and various changes. It takes me about 4-5 hours just to compile a new build due to supporting 6.5 years of Unity versions on a ton of different platforms. I have a big backlog of new features and requests to add and am getting to them as soon as I can but I'm way behind. I won't be making a new build of Rewired soon to add this feature. I suggest you look into workarounds such as changing the drag threshold on the Event System.
     
  25. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    Rewired 1.1.38.0 is available for download now for registered users. The update will appear on the Unity Asset Store when the update is approved.

    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.

    Anyone interested in the Game Core plugin should see the Supported Platforms page.
     
  26. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    It seems to me that all you would have to do is to add a MonoBehaviour to the Touch Joystick GameObject that implements IInitializePotentialDragHandler and set the PointerInputEvent.useDragThreshold to false in OnInitializePotentialDrag. This should modify the pointer event that would then get sent to the Touch Control in OnBeginDrag, OnDrag, and OnEndDrag and eliminate the drag threshold.
     
  27. matthew-holtzem

    matthew-holtzem

    Joined:
    Sep 1, 2016
    Posts:
    40
    Yes I thought about this sometime yesterday after posting and have started working on it. Seems like it should be a pretty simple workaround that can work with any gameobject looking at drag events

    Thanks for the timely responses and for looking into the issue I appreciate it :)
     
  28. Chrixeleon

    Chrixeleon

    Joined:
    Oct 21, 2014
    Posts:
    3
    Hi guavaman, what would be the best way to prevent the player from mapping certain joystick inputs (specifically stick directions and center buttons) to game actions across all joystick GUIDs? For example, I don't want the player to be able to map "left stick up" or the start, select, etc. buttons on any joystick (e.g. "Start" on Xbox 360, "Options" on DualShock 4, etc.) to the "Jump" action.

    So far I have a custom InputMapper setup with the isElementAllowedCallback option method set, but it doesn't look like there's an easy way to distinguish between different axes (e.g sticks vs. triggers) or button types using just ControllerPollingInfo. The element IDs look like they're usually consistent (e.g. 13 is usually the "Start" button), but that's not true for all GUIDs.

    Is there a way to check "is this element a stick" or "is this element a center button" for any given element and GUID? Or is this something that requires some custom code/joystick setup?

    Thanks!
     
  29. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    In short, no.
    • All Controllers in Rewired are all unique entities with no relation to one another.
    • All element identifiers on all Controllers in Rewired are unique entities with no relation to one another.
    • There is no concept of "element types" beyond buttons and axes. There is no metadata that describes an element or set of elements as a "trigger, stick button, dial, pedal, throttle, POV hat, trackball, guitar strings, etc." If there were such a thing, it could only be done using metadata manually created by me for recognized controllers because this information is not available through HID. However, Rewired does not provide this data.
    The only information provided about controllers beyond their button and axis element list is though Controller Templates. A Controller Template is just a mapping of known template elements to those individual controller elements for that particular controller. This information can be accessed at runtime through the Controller Template in the Joystick. However, there is no guarantee a particular template element type will match the element type on controller it maps to. A trigger on the Gamepad template can and does map to buttons on some controllers. Left stick on the Gamepad template can map to D-Pads on certain gamepads that don't have sticks, etc.

    If what you are looking for is protected Action assignments, you do not do that based on the controller element type. That is done by marking certain map categories as protected from reassignment so they cannot be rebound to other elements and using conflict checking to prevent changing of those bindings. See Conflict Checking - Protect Controls.
     
    Last edited: Jan 6, 2021
  30. Chrixeleon

    Chrixeleon

    Joined:
    Oct 21, 2014
    Posts:
    3
    Got it, that's what I figured. I'll look into using the Controller Template to see if that covers what I need. Thanks for the info (and for an awesome tool with such comprehensive documentation)!
     
  31. DTAli

    DTAli

    Joined:
    Jan 22, 2016
    Posts:
    54
    Hi there @guavaman , not sure if this has been mentioned, but I'm having trouble displaying the mouse cursor on PS4. The system indicator shows that it detects the mouse, there's nothing in our game that hides the cursor (Cursor.visible), in the rewired settings for PS4 "Disable mouse" is unchecked, so I was wondering if I'm missing anything else? Cheers!
     
  32. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    Rewired does nothing at all with regard to the mouse on PS4. Rewired's PS4 input is entirely based on UnityEngine.Input and UnityEngine.PS4.PS4Input. You can see that here:
    https://guavaman.com/projects/rewired/docs/Overview.html#tested-platforms

    Rewired doesn't control cursor visibility or setting cursor position on any platform. Explore UnityEngine.Input for answers.
     
    DTAli likes this.
  33. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    Just wanting to ask, will there be PS5 support as well? ( just was not mentioned in the product description so..)
     
    futurlab_peterh likes this.
  34. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    There is no planned support for PS5. I haven't heard back anything from Sony on getting access to PS5 resources after many months and many back and forth discussions. Implement platform support using Custom Controllers:
    https://guavaman.com/projects/rewired/docs/CustomControllers.html
     
  35. matthew-holtzem

    matthew-holtzem

    Joined:
    Sep 1, 2016
    Posts:
    40
    Minor bug report with Touch Controller. Really I'm not sure if it is actually a bug or just something working differently than I expect it to.

    The "Disable Mouse Input When Enabled" checkbox does not take into account the original state of mouse input when re-enabling it. So in my case that box was checked but mouse controls were disabled before touch controller is created and then after it is destroyed mouse input was getting enabled again. Not a big issue once you know what was going on but it took some time to figure out what was happening
     
  36. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    No, it doesn't record the original state. Thanks for the information. There will always be scenarios where it won't work right. Even if it recorded the original value, if you choose to change the mouse state manually by script while the component is enabled, it would fail when disabled and the original value it recorded was stored. It was simply a convenience.
     
  37. Khena_B

    Khena_B

    Joined:
    Aug 21, 2014
    Posts:
    273
    Hi, I'm having issues with the Oculus Home app disabling or blocking my mouse events, can't click on anything when it's opened, when I close all the Oculus processes and restart my project I can click and hover over my menu buttons, it isn't an issue when using Unity's input system, before I spend more time trying to get to the bottom of this do you know what might be the problem?

    Edit:

    It seems to work if I enable this option, not sure why exactly, my project doesn't require touch support, this probably has to do with Oculus?

    543y356.JPG
     
    Last edited: Jan 12, 2021
  38. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    That settng is nothing more than a front end for UnityEngine.Input.touchSupported.

    Rewired has nothing to do with controlling or reading touch input. Any issues you are having are involving Oculus and Unity.
     
  39. Buffles-TE

    Buffles-TE

    Joined:
    Mar 19, 2013
    Posts:
    10
    Hi, Currently, I'm using the Control Mapper for key rebinding and it works perfectly. However a recent change(Hacky workaround) I made requires me to have 2 actions assigned to the same key and I want to basically copy the key binding of one action to another one via code when I rebind a specific action in the control mapper. Is this possible and how would I tackle this?
     
  40. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    This would be complicated. You'd have to both assign two keys when rebinding (dealing with binding conflicts) and detect and remove the old duplicate binding bound to the same key. This requires you fully understand the binding system. Control Mapper does not use the simplified Input Mapper interface for detecting user bindings. All the examples of how to work with user bindings are listed in the documentation:
    https://guavaman.com/projects/rewired/docs/HowTos.html#controller-mapping-screen

    I suggest you think of a different way to achieve what you're trying to achieve if possible than trying to enforce two Actions to always be bound to the same key.
     
    Buffles-TE likes this.
  41. Oshigawa

    Oshigawa

    Joined:
    Jan 26, 2016
    Posts:
    362
    Hello @guavaman

    i updated my rewired but my input manager is empty (it was in the scene, not as a prefab, big mistake, i know). Any way to update it without losing that file so i don't have to make everything from the start or copying it from the backup project on older unity and rewired version?

    Edit: i copied the prefab from old project, i hope i won't run into issues. Anyway, consider this solved and disregard it :)
     
    Last edited: Jan 14, 2021
  42. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    Rewired doesn't touch a single bit of your data when you update it, delete, it or anything else. Data is just like any other data in a Unity GameObject -- all the public variables in your MonoBehaviours. The Rewired Input Manager is just a MonoBehavior and your data is just serialized fields. The Rewired Editor is just an interface to edit data in these fields in a more user-friendly way. (You can even see the raw fields by enabling the Debug mode in the inspector in Unity). None of these serialized fields have changed. Any errors in data would be caused by some kind Unity serialization error and is not specific or related to Rewired.
     
    Oshigawa likes this.
  43. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    Your original message said the "ControllerDataFiles" was empty. This is not your user data. Your user data is in the GameObject itself in the Input Manager component. ControllerDataFiles is nothing but a link to the list of controller definitions to be used. This is an object reference to a Scriptable Object stored in the Rewired folder. ControllerDataFiles is static and does not change based on anything you do in your project. It's just a list of controllers. It exists in Rewired/Internal/Data/Controllers.
     
    Oshigawa likes this.
  44. Oshigawa

    Oshigawa

    Joined:
    Jan 26, 2016
    Posts:
    362
    Got it, thanks ;)
     
  45. thatscraigz

    thatscraigz

    Joined:
    Mar 27, 2015
    Posts:
    100
    Hiya @guavaman ! I hope you've been well :)

    I'm currently having an issue with a fresh project in 2019.4.16f1 and Rewired 1.1.32.0.U2019. My Rewired Input Manager is a prefab, I've tried having it in scene, as well as not as a prefab, as well as tried using the Rewired Initializer ‍♂️

    There's 3 errors though it looks like the bottom two are related to the first one. Any advice? ‍♂️

    Thank you for all the great support through the years

    -craigz

    upload_2021-1-16_16-34-26.png
    Code (CSharp):
    1. Rewired: Rewired: An exception occurred during initialization. Input will not function.
    2.  
    3. Exception:
    4. System.NullReferenceException: Object reference not set to an instance of an object
    5.   at Rewired.ReInput.eNNgCttyXHqBthPESdLqeqgaOBJ (Rewired.InputManager_Base , System.Func`2[T,TResult] , Rewired.Data.ConfigVars , Rewired.Data.ControllerDataFiles , Rewired.Data.UserData ) [0x0037d] in <4c0f6b7aa6f147568450e7af6f525cc4>:0
    6.   at Rewired.InputManager_Base.Initialize () [0x000f6] in <4c0f6b7aa6f147568450e7af6f525cc4>:0
    7. ------- Rewired System Info -------
    8. Unity version: 2019.4.16f1
    9. Rewired version: 1.1.32.0.U2019
    10. Platform: Windows
    11. Editor Platform: Windows
    12. Using Unity input: False
    13.  
    14. UnityEngine.Logger:LogError(String, Object)
    15. Rewired.Logger:LogErrorNow(Object, Boolean)
    16. Rewired.Logger:LogError(Object, Boolean)
    17. Rewired.Logger:LogError(Object)
    18. Rewired.InputManager_Base:HandleException(ExceptionPoint, String, Exception)
    19. Rewired.InputManager_Base:Initialize()
    20. Rewired.InputManager_Base:Awake()
    21. UnityEngine.Object:Instantiate(Object)
    22. Rewired.Utils.UnityTools:Instantiate(Object, Vector3, Quaternion, Transform, Boolean)
    23. Rewired.Utils.UnityTools:Instantiate(Object, Transform, Boolean)
    24. Rewired.Initializer:Initialize()
    25. Rewired.Initializer:Awake()
    26.  
    upload_2021-1-16_16-34-6.png
    Code (CSharp):
    1. Rewired: Rewired is not initialized. Do you have a Rewired Input Manager in the scene and enabled?
    2. ------- Rewired System Info -------
    3. Unity version: 2019.4.16f1
    4. Rewired version: 1.1.32.0.U2019
    5. Platform: Windows
    6. Editor Platform: Windows
    7. Using Unity input: False
    8.  
    9. UnityEngine.Logger:LogError(String, Object)
    10. Rewired.Logger:LogErrorNow(Object, Boolean)
    11. Rewired.Logger:LogError(Object, Boolean)
    12. Rewired.Logger:LogError(Object)
    13. Rewired.ReInput:QwCEpaKOrkFlvcpwbbNlDbBcWsCo()
    14. Rewired.ReInput:get_players()
    15. Rewired.Integration.PlayMaker.RewiredPlayerFsmStateAction:ValidateVars() (at Assets/Rewired/Integration/PlayMaker/Common.cs:595)
    16. Rewired.Integration.PlayMaker.BaseFsmStateAction:OnUpdate() (at Assets/Rewired/Integration/PlayMaker/Common.cs:90)
    17. HutongGames.PlayMaker.FsmState:OnUpdate() (at C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmState.cs:265)
    18. HutongGames.PlayMaker.Fsm:UpdateState(FsmState) (at C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2786)
    19. HutongGames.PlayMaker.Fsm:Update() (at C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:1995)
    20. PlayMakerFSM:Update() (at C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/PlayMakerFSM.cs:594)
    21.  
    upload_2021-1-16_16-35-18.png
    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. Rewired.Integration.PlayMaker.RewiredPlayerFsmStateAction.ValidateVars () (at Assets/Rewired/Integration/PlayMaker/Common.cs:595)
    3. Rewired.Integration.PlayMaker.BaseFsmStateAction.OnUpdate () (at Assets/Rewired/Integration/PlayMaker/Common.cs:90)
    4. HutongGames.PlayMaker.FsmState.OnUpdate () (at C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmState.cs:265)
    5. HutongGames.PlayMaker.Fsm.UpdateState (HutongGames.PlayMaker.FsmState state) (at C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2786)
    6. HutongGames.PlayMaker.Fsm.Update () (at C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:1995)
    7. PlayMakerFSM.Update () (at C:/Projects/Playmaker_1.9.0/Projects/Playmaker.source.unity/Assets/PlayMaker/PlayMakerFSM.cs:594)
     
  46. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624
    1. Update Rewired.
    2. Do a clean install.
    No amount of changing settings is going to fix a a null reference exception being thrown during initialization.

    All exceptions after the first one are due to the first one.
     
  47. Discmage

    Discmage

    Joined:
    Aug 11, 2014
    Posts:
    60
    Hiya, I was just wondering if Rewired allows the keys/mouse inputs to work even if the app is not in focus/in background? If so, how does one do this?

    I managed to find a method for keys using the Windows API, but I can't do that level of programming myself for mouse inputs...so looking at rewired instead.

    Thanks in advance!
     
  48. elpie89

    elpie89

    Joined:
    Jun 30, 2014
    Posts:
    32
    Hi, I have a fresh project made with unity 2020.2.1f1
    With a simple installation of rewired, I can't get rid of this message
    "Rewired: The version of Rewired installed (1.1.30.2.U2019) was not designed for Unity 2020. Please install Rewired for Unity 2020."

    Is there something I'm doing wrong?
     
  49. GenericJoe

    GenericJoe

    Joined:
    Apr 27, 2012
    Posts:
    33
    Hi, how do I go about swapping the maps between the left and right controllers?

    I have two different joystick mappings for the "Open VR Controller - Left (Unity)" and the "Right".
    If the player is left handed I want to effectively swap these around. What's the best way of achieving this?
     
    Last edited: Jan 17, 2021
  50. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,624