
The InputSystem allows sharing a single device with multiple players. Yet it's quite a challenge getting it working with PlayerInputManager. With this package, it becomes just 2 steps.This package solves supporting more than one player per device. Use Unity's InputSystem.PlayerInput even when a device is used by multiple players with just 2 steps.What are the 2 steps!?1. Matches what you may have seen in multiple "split keyboard" tutorials. Setup your `\*.inputactions` asset to support a different control scheme for each player. For example, control scheme of KeyboardLeft for WASD and KeyboardRight for arrow keys.2. Add the `PlayerInputCanShareDevice.cs` component to the `PlayerInput` prefab that is referenced by your `PlayerInputManager`.That's it! PlayerInputCanShareDevice.cs handles leveraging what you setup in '\*.inputactions` to correctly split the device with as many players as you'd like. All while being able to use Unity's PlayerInput and PlayerInputManager for everything else.Try out a WebGL sample!Features:Allows any device to support any number of players; 4 players on a keyboard, 2 on a gamepad, etc.Works with Unity's default PlayerInput & PlayerInputManager components.Works with PlayerInputManager join/left system.Works with Unity's button rebinding system.# OverviewUnityEngine.InputSystem allows you to share a single device with multiple players. (see https://docs.unity3d.com/Packages/com.unity.inputsystem@1.6/manual/PlayerInput.html ). Enabling setups such as 2 players using a single keyboard.However, it's not easy to setup. Especially if you want to support using the InputSystems control rebinding and/or the ability to create the player only when they press a button on their shared section of the device.# Functionalities included- InputSystem demonstration of single device shared with multiple players. Keyboard and Gamepad are shown in the example. The setup works with any device.- InputSystem prefabs for rebinding controls on shared devices.- Shared device setup shows players able to join and drop at runtime by pressing a key on bound sections of the device.# Dependencies- This package requires including UnityEngine.InputSystem.- Some scenes need TMPro (TextMeshPro) essentials in your project.