public void Spawn(PlayerIndex index, bool addActivePlayer) { if (LobbyStateManager.Instance.State == LobbyStateManager.LobbyState.TitleScreen || !LobbyStateManager.Instance.CameraAtDestination) { return; } if (!_players.FirstOrDefault(p => p.Index == index)) { Vector3 position = _spawnLocations[(int)index - 1]; GameObject player = Instantiate(_playerPrefab, position, Quaternion.identity); player.GetComponent <PlayerInput>().Index = index; player.transform.parent = gameObject.transform; Material material = _colorController.AssignRandomPlayerMaterial(player); _players.Add(player.GetComponent <PlayerInput>()); AudioManager.Instance.PlayOneShot("Player Jump"); if (PlayerSelectUIManager.Instance.PlayerIsReady(index)) { _colorController.ShowIcon(index); } else { _colorController.HideIcon(index); } if (addActivePlayer) { ActivePlayers.AddPlayer(new Player((int)index, material)); } } }
private void Update() { if (LobbyStateManager.Instance.State == LobbyStateManager.LobbyState.TitleScreen) { return; } GamePadState state = GamePad.GetState(_index); if (state.Pressed(CButton.A)) { _playerSpawner.Spawn(_index, true); } if (state.Pressed(CButton.B)) { _pressedBTime = Time.time; PlayerSelectUIManager.Instance.RemovePlayer(_index); _colorController.HideIcon(_index); } if (state.B && Time.time > _pressedBTime + _timeToHoldB) { if (!PlayerSelectUIManager.Instance.ReadyToStartMatch) { _playerSpawner.Despawn(_index, true); } } if (state.Back) { _blockSpawner.Reset(); _playerSpawner.Reset(); PlayerSelectUIManager.Instance.Reset(); LobbyStateManager.Instance.ReturnToTitleScreen(); } if (state.Pressed(CButton.Start)) { if (PlayerSelectUIManager.Instance.ReadyToStartMatch) { PlayerSelectUIManager.Instance.StartMatch(); } PlayerInfo player = ActivePlayers.Players.FirstOrDefault(p => p.ControllerNumber == (int)_index); if (player != null) { PlayerSelectUIManager.Instance.ReadyPlayer(_index); _colorController.ShowIcon(_index); } } CaptureKeyboardInput(); }