public void OnPlayerJoin(PlayerInput input) { PlayerConfiguration configuration = new PlayerConfiguration(); settings.players.Add(configuration); Transform random = spawnSpots[Random.Range(0, spawnSpots.Count)]; spawnSpots.Remove(random); GameObject go = Instantiate(settings.playerPrefab, random.position, random.rotation, transform); SelectionHud hud = input.transform.parent.GetComponentInChildren <SelectionHud>(); PlayerMover mover = go.GetComponent <PlayerMover>(); mover.PlayerIndex = input.playerIndex; _playerJoined.Add(hud, go); hud.SetInfo(this, settings, configuration, input); _onTimerTriggered += hud.OnTimerTrigger; _onTimerValueChanged += hud.OnTimerValueChanged; Leader leader = go.GetComponent <Leader>(); leader.SetConfiguration(configuration); _leaders.Add(leader); _inputs.Add(input); TimerIsOn = false; }
private void Awake() { var index = playerInput.playerIndex; PlayerMover[] movers = FindObjectsOfType <PlayerMover>(); _mover = movers.FirstOrDefault(x => x.PlayerIndex == index); if (_mover == null) { Debug.Log("Destroy"); Destroy(transform.parent); return; } _hud = transform.parent.GetComponentInChildren <SelectionHud>(); camera.SetTarget(_mover.transform); }
public void RemovePlayer(SelectionHud hud) { var pair = _playerJoined[hud]; if (pair != null) { hud.OnLeave(); Destroy(pair.gameObject); _onTimerTriggered -= hud.OnTimerTrigger; _onTimerValueChanged -= hud.OnTimerValueChanged; Destroy(hud.transform.parent.parent.gameObject); _playerJoined.Remove(hud); } if (_playerJoined.Count < 1) { SceneManager.LoadScene("Menu"); } }