void Update() { //Check for death List <PlayerCharacter> characters = PlayerCharacter.GetAll(); if (!ended && characters.Count > 0) { int nb_alive = characters.Count; foreach (PlayerCharacter character in characters) { if (character.IsDead()) { nb_alive--; } } if (nb_alive == 0) { ended = true; StartCoroutine(EndGameRoutine()); } } //Open menu PauseMenu menu = PauseMenu.Get(); foreach (PlayerControls controls in PlayerControls.GetAll()) { if (menu && controls.GetMenuDown()) { menu.Toggle(); } } }
private void Start() { //Load game data PlayerData pdata = PlayerData.Get(); if (!string.IsNullOrEmpty(pdata.current_scene)) { if (!string.IsNullOrEmpty(pdata.current_checkpoint)) { //Go to checkpoint Checkpoint checkpoint = Checkpoint.Get(pdata.current_checkpoint); if (checkpoint) { MoveCharacterTo(checkpoint.transform.position); } } else { //Go to entry LevelExit exit = LevelExit.Get(pdata.current_entry_index); if (exit != null) { MoveCharacterTo(exit.transform.position + new Vector3(exit.entrance_offset.x, exit.entrance_offset.y)); } } } //Pause game if (PauseMenu.Get()) { PauseMenu.Get().onShow += () => { Pause(); }; PauseMenu.Get().onHide += () => { Unpause(); }; } //Camera init FollowCamera cam = FollowCamera.Get(); if (cam != null && cam.target != null) { cam.MoveTo(cam.target.transform.position); } }