Co-op Split-Screen Inventory

Willedmeades

New member
Hi,

I've recently just purchased your inventory system for a project I am starting. I want to create a split screen multiplayer, preferably with the new input system if that's possible? It would be 1-4 players, each with own inventory and could join/leave at any point.

Is there a correct way to set this up, I have created two players, two camera for split screen, two inventory canvases and one inventory database. Although It doesn't seem to work after adding another player. I know Unity's New Input System would be a sensible choice due to wanting between 1-4 players for my game but not sure of the complications it might cause.

Any suggestions to get me on the correct path to begin?

Thanks a ton,

Will
 
Good question, I have not yet tested a split-screen setup.
There are a few hurdles, the main one is UI input which is done through the default Unity Event System and Standalone Input Module component. This only really gives you control of one UI at a time.

So unfortunately, unless you need the UI to only display non interactive UI, only one player will be able to to control the UI at a time (or rather all players will control the UI for everyone.)

I will be creating an integration for the new input system (and Rewired) at some point. At first I thought it would consist of simply replacing the Inventory Standard Input component. But thinking through the split screen complication, I think it will need more than that.

While making those integrations I can try out a split-screen setup to find all the potential issues and try to find solutions for them. This may take a while unfortunately... But it is something I will definitely look into since I am a big fan of couch co-op games. I will bump up the priority to find a solution for split-screen as there may be a lot of complications if people try to hack it in the system.

My initial thoughts are
1) Each character must have different inputs.
2) The character and UI must be in the scene at all times (This is a current limitation, you cannot spawn characters at runtime if they need to be linked to UI. You can simply have them in the scene and be disabled until needed though)
3) You will need a Display Panel Manager (each with their unique ID) with a canvas for each player
4) Each UI must have their own Event System / Standard Input Module (or rather something custom)

Doing a quick search about local multiplayer UI I found those links which could be of interest:
 
Hi,

thanks for the detailed reply!

I do far have seem to have got two players in the scene, each can control the inventory with separate controls over split screen. So I am making my way in the correct direction.

I am new to split screen games too but happy to share how I get along with implementing this along the way.

Looking forward to the new input system implementation.

Thanks again,

will
 
That's awesome Will!

Do share as much information as possible, I am sure it will help other users which would like to implement something similar.
 
Hi,

thanks for the detailed reply!

I do far have seem to have got two players in the scene, each can control the inventory with separate controls over split screen. So I am making my way in the correct direction.

I am new to split screen games too but happy to share how I get along with implementing this along the way.

Looking forward to the new input system implementation.

Thanks again,

will
How were you able to get the characters to operate with two different controls? I'm using two controllers but both characters react to input from either controller at the same time.
 
Sorry for the late reply I missed your question for some reason.
I would recommend you use the new Input System or Rewired to do that.
The issues is that UIS doesn't have an integration with either of those assets yet. We'll have it ready some time in February (we are completely changing the input system for UIS such that it uses the same as the one in UCC).
But if you want you can swap out the Inventory Standard Input component by a new component that uses another input system. That will require some custom code, but if you check the InventoryInput and the InventoryStandardInput scripts it should be somewhat straight forward to do.

Of course all this will become obselete once we make the change in February for v1.1.5 (v1.1.4 is coming in January)
 
Top