[Case 1402627] MultiplayerEventSystem breaks interaction and button visuals

Hey, so using Input system 1.3.0, Unity 2021.2.7
The MultiplayerEventSystem is breaking interaction and visual state of buttons contained underneath “playerRoot” objects.

Here’s a video showing the issue:

Basically, when 2+ players are joined. Only the last player is able to navigate and interact with buttons under its associated playerRoot. The first player is unable to interact at all.
Also, the visual state of all buttons seems to be in a constant change between “normal/selected” and “disabled”.

I assume this is because MultiplayerEventSystem manages a CanvasGroup on the “playerRoot” object. And every update is toggling “interactable” which causes nested Selectables to constantly switch between “normal/selected” and “disabled”.

And lastly, if you disable the first player gameObject then re-enable, interaction suddenly works correctly. However, the visual state is still incorrect.

1 Like

Hello, I have the same bug with visual state.
Described earlier here:

I submitted a bug report and rolled back to version 1.2 which does not have this problem. Hopefully the devs will notice and fix it soon.

1 Like

Yeah, it’s going to be a tricky problem to solve. Feels like the Selectable API needs changing to support this functionality.
Something like a SelectableGroup component, that Selectables are aware of and when making navigation choices, they query the SelectableGroup to see if the next navigation target is valid.

The main problem is that the EventSystem was never designed to be used like this. And I’m not sure that even UIToolkit is fixing these issues as well, as that depends on the EventSystem in its current state too. And is the MultiplayerEventSystem even supported in UIToolkit? Since MultiplayerEventSystem requires a root gameObject, UIToolkit doesn’t use gameObjects, so how does that work?

Not a great situation for local co-op devs :frowning:

Just helping confirm this situation further. I just posted about it in the 1.3.0 announcement thread. I’ll relay that info to save time for anyone curious.

  • Selectables coloring settings goes right in the trash. Disabled vs Normal is not obeyed correctly. Almost everything starts showing up as disabled by default. Happens once you have more than 1 PlayerInput w/ their own canvases.
  • Again, multiple players, multiple canvases: when new Selectables are instantiated on Player X’s canvas, Player Y loses currently selected gameObject in MultiplayerEventSystem and is also unable to navigate back to items in their currently active canvas group.
1 Like

You can vote to solve the problem faster.

1 Like

Bumped

2 Likes

The issue persists in inputsystem 1.4.1 FYI for anyone digging around on this topic. Still 1.2.x was the last time this problem didn’t exist.

1 Like

bumped the FUCK out of this glorious comment

1 Like

So this issue should be fixed by this pull request UI controls in MultiplayerEventSystems should not change colour unexpectedly by andrew-oc · Pull Request #1547 · Unity-Technologies/InputSystem · GitHub but because that fix has a new public API property, it has to go into the 1.5 release. There’s no release date for that yet, but you can change your input system package to point at the git repo if you want to at least verify that it fixes the issue for you.