예제 #1
0
        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();
                }
            }
        }
예제 #2
0
        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);
            }
        }