Multiplayer Initialization
To set up local multiplayer, I used Unity's Player Input Manager component to spawn prefabs containing a custom configuration class. This class caches the active PlayerInput component, the designated character Scriptable Object, and the user's index within a manager marked with DontDestroyOnLoad. When a match starts, the system spawns character models at designated spawn points and links the internal variables directly to control events on the PlayerInput component.
Grab Mechanic
I was responsible for implement a grab mechanic on top of our existing move system. Our system gives each move its own flag and has fields to use hitboxes and hurtboxes. I added a grab input in the input actions and assign players a grab hitbox, setting it up so it's behavior was in line with the game's game design document.
Main Menu & Character Select
For the beginning menus, I implemented an additive scene loading system to preserve the shared environment backdrop across menu transitions. The background environment listens for character-selection events to trigger its animation. The system also auto-detects connected hardware, showing the player designations with the input device type, using this info to dynamically initialize the character select screen.