// Update is called once per frame void Update() { if (controlls.joinAction.wasJustPressed) { List <InputDevice> devices = playerInput.handle.GetActions(controlls.actionMap).GetCurrentlyUsedDevices(); PlayerHandle handle = players[joinedPlayers].handle; string name = "unassigned"; foreach (var device in devices) { handle.AssignDevice(device, true); name = device.deviceName; print(name); } players[joinedPlayers].GetComponent <PlayerMovement>().Assign(name); joinedPlayers++; } }
public void Update() { // Listen to if the join button was pressed on a yet unassigned device. if (joinAction.control.wasJustPressed) { // These are the devices currently active in the global player handle. List <InputDevice> devices = globalHandle.GetActions(joinAction.action.actionMap).GetCurrentlyUsedDevices(); PlayerHandle handle = PlayerHandleManager.GetNewPlayerHandle(); for (int i = 0; i < devices.Count; i++) { handle.AssignDevice(devices[i]); } playerPrefab.SetPlayerHandleMaps(handle); for (int i = 0; i < handle.maps.Count; i++) { // Activate the ActionMap that is used to join, // disregard active state from ActionMapSlots for now (wait until instantiating player). var map = handle.maps[i]; map.active = (map.actionMap == joinAction.action.actionMap); } players.Add(new PlayerInfo(handle, joinAction, leaveAction)); } int readyCount = 0; for (int i = players.Count - 1; i >= 0; i--) { var player = players[i]; if (!player.ready) { if (player.joinControl.wasJustPressed) { player.ready = true; } if (player.leaveControl.wasJustPressed) { player.playerHandle.Destroy(); players.Remove(player); continue; } } else { if (player.joinControl.wasJustPressed || player.leaveControl.wasJustPressed) { player.ready = false; } } if (player.ready) { readyCount++; } } if (readyCount >= 1 && (players.Count - readyCount) == 0) { StartGame(); } }
public void Update() { // Listen to if the join button was pressed on a yet unassigned device. if (joinAction.control.wasJustPressed) { // These are the devices currently active in the global player handle. List <InputDevice> devices = globalHandle.GetActions(joinAction.action.actionMap).GetCurrentlyUsedDevices(); PlayerHandle handle = PlayerHandleManager.GetNewPlayerHandle(); foreach (var device in devices) { handle.AssignDevice(device, true); } foreach (ActionMapSlot actionMapSlot in playerPrefab.actionMaps) { ActionMapInput map = ActionMapInput.Create(actionMapSlot.actionMap); map.TryInitializeWithDevices(handle.GetApplicableDevices()); map.blockSubsequent = actionMapSlot.blockSubsequent; // Activate the ActionMap that is used to join, // disregard active state from ActionMapSlots for now (wait until instantiating player). if (map.actionMap == joinAction.action.actionMap) { map.active = true; } handle.maps.Add(map); } players.Add(new PlayerInfo(handle, joinAction, leaveAction)); } int readyCount = 0; for (int i = players.Count - 1; i >= 0; i--) { var player = players[i]; if (!player.ready) { if (player.joinControl.wasJustPressed) { player.ready = true; } if (player.leaveControl.wasJustPressed) { player.playerHandle.Destroy(); players.Remove(player); continue; } } else { if (player.joinControl.wasJustPressed || player.leaveControl.wasJustPressed) { player.ready = false; } } if (player.ready) { readyCount++; } } if (readyCount >= 1 && (players.Count - readyCount) == 0) { StartGame(); } }