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

Still Xbox 360 Joypads bug on Windows... unbelievable.

Discussion in 'Editor & General Support' started by ForrestX, Feb 7, 2015.

  1. ForrestX

    ForrestX

    Joined:
    Apr 17, 2010
    Posts:
    94
    Windows 7 64bit or Windows 8 64bit (tested on 4 PCs)
    Unity 4.5.4

    In editor:
    With two original Xbox360 controllers attached, everything works (almost) ok

    Build:
    Triggers seem to be inverted (pad1 <-> pad2) and they don't respond correctly (mainly they don't work at all).

    Searching internet I just found that this bug is old and hasn't been fixed yet !!??!?
    http://www.gallantgames.com/posts/27/details-on-the-xbox-360-controller-bug-in-unity

    I tried with two xBox one controllers (wired) simultanely using this driver:
    http://majornelson.com/2014/06/05/pc-drivers-for-the-xbox-one-controller-available-now/
    Same bug.

    I guess then that is not related to 360 drivers but it happens when two or more identical controllers are plugged in, infact using a 360 controller and a ONE controller together works perfectly. (although often it finds a phantom device).

    DEAR UNITY SUPPORT, I KNOW THERE AREN'T SO MANY CO-OP GAMES MADE WITH UNITY, BUT THIS IS A SERIOUS BUG FOR MANY PPL AND YOU SIMPLY CONTINUE IGNORING IT...

    P.S. The two pads works correctly in other games...therefore it's a Unity problem.
     
  2. Graham-Dunnett

    Graham-Dunnett

    Administrator

    Joined:
    Jun 2, 2009
    Posts:
    4,287
    I can see your bug 669890. What is the bug number from August you refer to? I've told QA about your bug and this thread.
     
  3. ForrestX

    ForrestX

    Joined:
    Apr 17, 2010
    Posts:
    94
    I don't know the bug number since the case has been opened by Patrick (the author of Incontrol), but one thing I forgot to say is that this bug is NOT related to it. At start I thought it was my fault and tried that script, but then I realized it's a known Unity bug.
    Just try for example a released game:
    https://unity3d.com/es/node/173

    you will see that it has issues with two xbox controllers connected...
    I wasn't even able to start the game coop.
     
  4. pbhogan

    pbhogan

    Joined:
    Aug 17, 2012
    Posts:
    377
    Hi—I'm Patrick, the author of InControl. The case number for the bug I filed in August is 624868.
     
  5. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    Just a little update on this.

    I've found and fixed two issues so far with 360 controllers in 4.6:
    • We were missing add/remove controller messages from Windows due to a change in the way those messages are sent in Windows Vista. The way we handle these messages has been changed and I now see add/remove of controllers working correctly on my Windows 8.1 machine.
    • We were reading the triggers using XInput 1.3, which is not installed on systems by default. I've changed this to fall back to XInput 1.0 if XInput 1.3 cannot be found; XInput 1.0 ships as part of Windows Vista or later.
    These fixes are still subject to review, but assuming nobody can point out any problems with them, I should be able to get them into the next patch release.

    This does not fix 100% of the problems. Right now I'm looking at a situation where I've connected a controller but none of its input is being picked up; it looks to me like this is because the indicies of controllers in the array returned by Input.GetJoystickNames() do not necessarily correspond to the actual joystick numbers. (The names are sorted by 'device pointer', such that they should be consistent across calls but don't necessarily have any useful significance).

    I think the way to resolve this is going to be to change GetJoystickNames() to include empty entries for joystick numbers that have no device attached, so that 'the name in slot 2 is always joystick number 2' and so on; but this is a change in behaviour that may break existing projects so I need to discuss it internally to be sure that it's the right thing to do.
     
    Last edited: Feb 8, 2015
    hippocoder and Graham-Dunnett like this.
  6. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,609
    From what I was able to test before, hot-plugging was broken in Windows builds until 4.5.3.

    This explains a lot of issues and why those two triggers are unreliable depending on the joystick ID. XInput supports 4 controllers only. When the joystick ID goes beyond 4 even if only one joy is plugged in, the alternate L/R triggers no longer work. (Or some kind of strange situation like that. Not 100% sure of the why, all I know is those axes are unreliable so you can't write your game to support them if you're doing multiplayer.)

    The treatment of GetJoystickNames() is completely different on all platforms. Take a look how OSX, Windows, Linux, and Android all treat this differently. You can see a number of issues I discovered here related to GetJoystickNames on different platforms. Android, joystick removal is never detected and the name stays in the list forever, but adding a joystick is. Linux, neither removal or addition is detected. In addition, Linux reports the names of keyboards in the joystick array. OSX re-sorts the joystick array with every removal or insert. Windows is the most stable it seems, but the array collapses when you remove a lower numbered joy id. Additionally, even with one joystick plugged into the system, there's no guarantee it will be assigned joy ID 0. Frequently it starts on id 1 or 2.

    Wow... I've been asking for a fix on this for over 4 years as you can see here on the forums and in the Unity Feedback. That's exactly the same band-aid solution I was asking for back then -- simply leave null entries in the GetJoystickNames array instead of letting the array collapse so the joystick IDs would match what the name array shows. If this is going to break existing products and games, expose it as another method. Better yet, if you're going to expose a new method, just return a struct array or a ReadOnlyCollection of read-only objects (no GC) with the joystick name and the joystick ID for each entry. That way, order doesn't matter.

    This is the primary reason I ended up writing my input system Rewired which uses Raw Input, Direct Input, XInput, and native input on OSX to get joystick input. I simply could not make a multiplayer game in Unity with acceptable joystick support. Rewired has since grown and includes a ton of other useful features that go beyond just fixing Unity's issues. There were also some other great bonuses from switching to native input like having access to > 20 joystick buttons, controller vibration, etc.
     
    Last edited: Feb 8, 2015
  7. pbhogan

    pbhogan

    Joined:
    Aug 17, 2012
    Posts:
    377
    Getting some of those fixes in will be super—thanks for looking into it. :)

    Existing projects are already broken with the unpredictable nature of GetJoystickNames() and the fact that it currently does not behave as everyone expects it to behave which is that every entry is an attached device. Changing it's behavior to include null devices won't be a problem as long as you document that fact clearly.

    In any event, the one thing I'll advocate for is that that if null devices are included in the list, they be identifiable as null by a specific name or in some other way. Some controllers inexplicably have an empty string for name, so don't use that as a marker, but something like "Null Joystick" or whatever would work.

    The main thing is that the list be predictable, i.e. if something is in slot 5 of GetJoystickNames(), it can be queried with joystick ID 5, etc.

    While we have you "on the line"... it would be terribly useful to have something added to the API to also query some of the additional information for joysticks like ProductID, VendorID and (when available) Serial Number. Right now the only thing we have to go on for identifying and mapping devices is a name string, but it's not the most reliable as some devices have very generic names. ProductID and VendorID would make identification far more reliable.

    Getting these few fixes in now would go a long way to solving the more serious problems for the time being.
     
  8. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    It was broken for me, on my Windows 8.1 laptop, in 4.6.2 when I started looking into this yesterday ;)

    Yeah, this isn't going to work for more than 4 Xbox360 controllers connected simultaneously, sorry. I think fixing it for 5+ controllers is somewhat out of scope of what I can reasonably achieve in patch releases. I'll ask whether we've tested what happens with 5+ controllers in the new input system.

    Ah, thanks! That's something I can mark off once this is resolved then :)

    I suspect this isn't actually going to break many projects in practice - it's not going to affect anyone on older versions of Unity, and my guess is that the majority of people who are actually using GetJoystickNames are doing so via input systems like Rewired and InControl anyway, so if I can help you guys get your stuff fixed then that's going to have most people covered. So, we'll see.
     
    shkar-noori likes this.
  9. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    Good point, thanks. (Don't suppose you know offhand a device which has an empty string for a name? Or are we talking cheap off-brand knockoff devices, here?)

    That's harder because if we're going to add an API point like that, it has to be on every platform. Changing GetJoystickNames() should be easier because the code is not particularly platform-specific, but if we start messing with hardware IDs I have no idea how that will behave on platforms other than Windows. I'll keep it in mind for after the 360 controllers are sorted out.
     
  10. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Is it possible to optimise a little as well? I notice using GetAxis is a lot slower than Input.GetKey(KeyCode.Joystick1Button4) for instance - taking a ms on some devices.

    Great you're working on these bugs though. I think we should pass the hat around for more bacon.
     
    shkar-noori likes this.
  11. pbhogan

    pbhogan

    Joined:
    Aug 17, 2012
    Posts:
    377
    Unfortunately not. The Xbox 360 controller on Mac is the big one that comes to mind. Glancing through my profiles here... it looks like the PS3 controller on Android and the Amazon Fire TV remote do it too, or have done it in the past.
     
  12. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    I think that instead of reporting 'Null Joystick' for the disconnected devices, it's going to be a nicer behaviour to report 'Unknown Device' for controllers that are connected but reporting empty names, like you describe. Would that work for you?
     
  13. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,609
    Odd. I was under the impression that it was fixed since it started working immediately after the 4.5.3 upgrade. I'm also on 8.1.... Perhaps the change wasn't merged? I noticed there was no mention of it in the 4.5.3 release notes, but it definitely happened for me. Never before had I got connection events in a build in Windows.

    Actually, this isn't just an issue with multiple joysticks. It seems to depend on the Unity ID it assigns, but even with one 360 controller attached this can happen. It may happen more often if you have 3-4 non-XInput devices attached too, I'm not sure. I never totally figured out the details of this failure, I just know that the XInput powered L/R trigger axes can sometimes not work even on a single 360 pad.

    :p

    Excellent. Actually, Rewired doesn't face these issues on Windows or OSX as long as the user chooses to use native input. If they choose to fall back to Unity input or are forced to by the platform (Webplayer), then it's a big problem. They have to jump through hoops to manually identify joysticks each time the game starts or one is connected/disconnected.

    Android and Linux are a whole other ball of wax. Linux has tons of problems. (Attempted and frequently incorrect auto-calibration of axes being one of the most insidious, along with no hot-plugging.) At this time, I'm falling back to Unity input for those platforms.

    Thanks for taking a look at this!
     
    Last edited: Feb 9, 2015
  14. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,609
    Sad thing is, many joysticks report odd names like that. On OSX, Linux, and Android the name string is a concatenation of the Manufacturer and the Product Name reported by the device. (On Windows, it's just product name as reported by the HID driver, which can differ from the device's actual product name.) It's pretty common to get "Unknown" returned for the manufacturer, especially on Bluetooth devices, and "Controller" or somesuch other useless identifier for the product name. So it's entirely possible to get "Unknown Controller" returned by a real joystick.

    But since Unknown Controller isn't a reliable matching string anyway for the most part, I guess it would be acceptable to leave null entries in the array and change any controllers that return null/string.empty names into Unknown Controller.
     
    Last edited: Feb 9, 2015
  15. pbhogan

    pbhogan

    Joined:
    Aug 17, 2012
    Posts:
    377
    "Unknown Device" might be a bit better than "Unknown Controller" as that is pretty likely to come up like Guavaman said. For what it's worth, the only entries in any names I've seen are containing "Unknown" are:
    Unknown Moga Pro HID
    Unknown Wireless Controller
    Unknown Zeemote: SteelSeries FREE

    There would be some pain in dealing with backwards compatibility with older versions of Unity that don't change the name, but it's probably better in the long run.

    Another potential option that could both address empty names and the other request I made is to tack on the VendorID/ProductID onto the name (in a form that can be parsed) just for desktop platforms, which is where 99% of the pain is anyway. For instance, a PS4 controller on Mac would be "Wireless Controller (0x054c:0x05c4)" which would also solve other potential name collisions. Maybe that's opening up a whole can of worms, but it's a thought.
     
  16. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    OK, just to give you guys an update on this.

    The two fixes I've made so far - detecting add/remove controllers, and using XInput 1.0 if XInput 1.3 is not present - should appear in 4.6.2p2, due out later this week. (It's possible QA will find a problem and kick the fixes out again, but I doubt it). Note that these fixes will probably not be in 5.0, but I should be able to get them into an early 5.0 patch release.

    The rest of what's been discussed is more difficult, for a number of reasons. I'm not giving up on it but don't expect to see it quite so quickly.
     
  17. pbhogan

    pbhogan

    Joined:
    Aug 17, 2012
    Posts:
    377
    Great! Thanks for looking into it Richard.
     
  18. pbhogan

    pbhogan

    Joined:
    Aug 17, 2012
    Posts:
    377
    @superpig Is there an issue in the Unity Issue Tracker we can keep an eye on for fixing the GetJoystickNames() problem, and maybe even push some votes if it'll help get support beyond yourself from within Unity for prioritizing this fix? If not, can you please put it in there, because as it is it's almost as if Unity organizationally doesn't even acknowledge this problem needs to be addressed post haste.

    I was testing a bunch of controllers on Windows yesterday and ran into so many cases of input not working because of the mismatch between GetJoystickNames() indices and joystick IDs that it was hard to even debug the real problem I was after in InControl, and I wasn't even dealing with xbox controllers. Without a way to consistently get at the name of a joystick by ID, there's just no way to do anything sane with controllers. :(

    I know I'm restating this tired old sentiment, so I apologize for ranting, but it's just so, so mind-boggling to me that an issue so serious that it renders controller input utterly broken on the most popular desktop operating system for gaming has trouble getting traction to be fixed quickly—or at all.

    This is adversely affecting significant Unity titles... games that are up on Steam, games that are showcased in Unity keynotes and events, games that are included at Unity booths at GDC, etc.

    I get e-mail from these developers constantly (and even end-users from time to time!) about broken input on Windows—it'd be nice to at least be able to point to an issue in the tracker and say, there, that's the cause.

    And it'd be good to have some elaboration on the difficulties of fixing it because, honestly, it just doesn't seem that complicated. How hard could it possibly be to look up the name of a device for a given ID? Iterate over 0 through 10 and build up the array of strings. Even if it's slow. Even if it causes GC. We can deal with that. Just make it work.

    Or give us Input.GetJoystickName( int joystickId ) and we'll do it ourselves. :p
     
    guavaman likes this.
  19. ForrestX

    ForrestX

    Joined:
    Apr 17, 2010
    Posts:
    94
    Indeed I will be at GDC with my co-op game that has joypad issues... thanks Unity for understimating this.
    From what I've read in this thread there's almost no hope to see it fixed in a couple of months.
    I must release the game in 3 months.... how ??
     
  20. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,609
    I'm not intending to be spammy or anything, but this is exactly the use case for which Rewired was originally written. I too struggled with GetJoystickNames for 5 years on my own game and had enough and wrote an input manager that does what we all expect one to do. Until Unity fixes GetJoystickNames (and a host of other problems), there is simply no way to have proper multi-joystick support (or even 100% reliable single joystick support) outside of completely circumventing their input system and going straight to a native input source like Raw or Direct Input (or OSX i/o kit) as Rewired does.

    I'll send you a PM with a link to a free trial. If you're using Unity input, converting it to Rewired is generally super quick and painless.
     
    Last edited: Feb 12, 2015
  21. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    Patch release 4.6.3p1, due out this time next week, should have the appropriate change to Input.GetJoystickNames() on Windows.

    Please note that this change WILL NOT be in the initial public release of Unity 5.0, but should be in the first patch release after that point (i.e. 5.0.1).

    The issue isn't "how to change the code on Windows," it's "how to maintain consistent API behaviour across 10+ platforms and multiple versions of Unity that are under simultaneous development" ;)
     
  22. pbhogan

    pbhogan

    Joined:
    Aug 17, 2012
    Posts:
    377
    That's great news! So what is the exact behavior going to be now? Empty slots have an empty string or "Unknown Device"?
     
  23. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    For now, an empty string.
     
  24. pbhogan

    pbhogan

    Joined:
    Aug 17, 2012
    Posts:
    377
    And what happens to devices with empty string names?
     
  25. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    For now, nothing. The plan is (as I said before) to have such devices reported as 'Unknown Device.' That change hasn't been made yet because we need more investment in testing (i.e. need to get hold of some devices that behave badly) before we can be sure we're doing it right.

    Note that this does not affect platforms other than Windows at the moment. The phantom device thing happens on Android, but other than that, on every other platform I looked at, the array indices and joystick numbers already matched up.
     
    shkar-noori likes this.
  26. pbhogan

    pbhogan

    Joined:
    Aug 17, 2012
    Posts:
    377
    Okay, good to know—thanks. For what it's worth, there aren't any blank name controllers on Windows that I know of, so it doesn't present a problem currently.
     
    superpig likes this.
  27. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    Cool. I should note, when I said 'the plan' I did mean 'my plan' - I need to discuss it more with others internally and see if we can do something better, find some nicer way to retrieve names from drivers, use hardware IDs, or whatever. But, in the interests of getting some improvements to you quickly, I didn't want to hold things up for having that discussion.
     
  28. pbhogan

    pbhogan

    Joined:
    Aug 17, 2012
    Posts:
    377
    I understand—and thank you. Just doing that much makes things so much more workable. :)
     
  29. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,609
    Thanks for the fix!

    Except that it isn't and has never been consistent across those platforms and still won't be after this patch.
    • OSX changes all your joystick IDs each time any joystick is added or removed and the array is collapsed.
    • Windows leaves the IDs the same, but collapses the array (hence the mismatch).
    • The new Windows patch makes the IDs match the array indices, but adds null entries instead of collapsing the array.
    • Linux doesn't support adding or removing controllers at all, so the entries stay fixed for the session and the controller won't work if unplugged and re-plugged into the same port.
    • Android leaves a phantom entry where the joystick used to be when you unplug one.
    I don't know how the consoles behave (if not using a native input library provided by the manuf), but I'd wager they're not consistent either. In fact, I don't know of any two platforms that actually behave the same as each other at this point.
     
    Last edited: Feb 20, 2015
  30. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    Yeah, but I didn't know that until I investigated it...

    Windows and Android should be pretty much the same at this point, no?
     
  31. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,609
    I've been dealing with these issues for so long I just kind of expected the bugs were well known at Unity. :p

    Not really. Android leaves fake entries when a controller is unplugged with the joystick name still populated. I imagine you're going to make the entries on Windows clear to string.empty when a controller is unplugged? That would be preferable to the system reporting a joystick that isn't there.

    One Q: What happens in the case of Unity assigning a joystick to ID, say, 4 right off the start? I imagine you get 2 string.empties and then the joystick name, correct? Because on Windows, it's not always the case that the only controller attached gets ID 1.
     
    Last edited: Feb 20, 2015
  32. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    Ah. Yes, on Windows the disconnected controllers will have blank names.

    If a joystick were assigned to joystick number 4 right off the bat, you'd get 3 string.empties and then the name.
     
  33. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,609
    Good. That's better than how it works on Android.

    Also, I wanted to ask, with your new changes to the Windows device notification, does it affect Webplayer builds at all? Hot-plugging is not possible in Webplayer on Windows (can't remember about OSX off hand). This is the only case where Rewired can't use native input sources on Windows (due to security), so that would be nice to fix if it's possible.
     
  34. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    I think so, yes.
     
  35. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,609
    That's very good news. Thanks for your help on this!
     
  36. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,609
    So I've had a chance to test the new 4.6.3p1 build and it does indeed work now in a reliable way in a Windows Standalone build.

    However, I'm unable to test webplayer it seems. I've installed the development webplayer from 4.6.3p1, but when I launch a test in any browser it says "Failed to Update the Unity Webplayer" -> "Unity Web Player update finished, but installed revision (4638001) is less than required revision (463a001). Please reinstall." If I do go ahead and reinstall it from the site, the webplayer reports its version in a build as 4.6.3f1 and doesn't contain any fixes.

    One comment about the Input.GetJoystickNames implementation. Is there a reason that it now reports [0] = "" even when no joystick was ever attached? This seems a bit odd. I would expect to see an array of size 0 when no joysticks have ever been attached during the session.
     
  37. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    We don't release webplayer runtimes for patch releases. The next webplayer that should have this fix in will be the one that comes with 4.6.4.

    I'll take a look into the array-with-one-empty-value behaviour, as it is a bit odd as you say...
     
  38. guavaman

    guavaman

    Joined:
    Nov 20, 2009
    Posts:
    5,609
    Okay, thanks!
     
  39. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    Doh! It's staring me in the face now that you pointed it out. I'll try and get a fix in for 5.1 at the very latest, and we'll see which earlier versions it makes sense to bring it to...
     
    guavaman likes this.
  40. ForrestX

    ForrestX

    Joined:
    Apr 17, 2010
    Posts:
    94
    I have the exact same issue as before. Triggers are inverted pad1 <> pad2 and I rebooted windows with pads already attached. I tried either Unity input system and InControl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     
  41. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    With which Unity version? If it's 4.6.3p1 then I'm guessing the problem is either that InControl has not been updated yet (4.6.3p1 only came out yesterday, after all) or your code is wrong. If it's an older version then you need to upgrade.
     
  42. ForrestX

    ForrestX

    Joined:
    Apr 17, 2010
    Posts:
    94
    it's the official 4.6.3 (not p1) with old inControl.
    @pbhogan is this issue related to InControl or Unity?
     
  43. pbhogan

    pbhogan

    Joined:
    Aug 17, 2012
    Posts:
    377
    If you mean controller 1 is showing controller 2's triggers and vice versa, but the other controls correct, then no, there's no way that could be InControl. Especially since you say it is doing it with Unity Input alone too.
     
  44. shkar-noori

    shkar-noori

    Joined:
    Jun 10, 2013
    Posts:
    833
    5.1?? can't it come in the patch releases of 5.0? cause it looks like that 5.1 is 4 months ahead :(
     
    MrEsquire likes this.
  45. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    @ForrestX: Please update to 4.6.3p1, check that the bug still occurs, and if so, file a bug report with the project attached. I might not be able to look at it for a couple of weeks because I'm busy with GDC but I'll do what I can. Fingers crossed it's something in your code that can be quickly and easily corrected.

    Sure it could, but the way I want to approach a fix like this is to do it for our 'trunk' branch first (which will eventually become 5.1) and then to look at backporting the fix to a 5.0 patch-release. Working this way around is the best way to avoid stuff accidentally regressing later.
     
    shkar-noori likes this.
  46. ForrestX

    ForrestX

    Joined:
    Apr 17, 2010
    Posts:
    94
    I tried 4.6.3p1 and nothing changes. To make pads work I usually disable usb pad controllers through device manager and re-enable them. Often is totally random.
     
  47. pbhogan

    pbhogan

    Joined:
    Aug 17, 2012
    Posts:
    377
    @superpig BTW, as of Unity 5.0.0f4 on Mac Unity Editor does not pick up connected controllers and has to be restarted. Builds seem to work properly, though.
     
  48. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
     
  49. pbhogan

    pbhogan

    Joined:
    Aug 17, 2012
    Posts:
    377
    I didn't think it was related to these fixes since this is on Mac and it has never had this problem in 4.x at any point.
     
  50. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    Oh, sorry, I didn't read your message clearly enough... as you say it's not related to these fixes.