Example #1
0
    // Start is called before the first frame update
    void Start()
    {
        CurrentLevelIndex = 0;
        Debug.Log("level : " + CurrentLevelIndex);
        GameFSM.GetState(GameStateLevel).OnStateInEvent.AddListener(() =>
        {
            LevelFsm = new FSMLite();
            LevelFsm.RegisterState(new FSMLite.State()
            {
                Name = LevelStateOpen
            });
            LevelFsm.RegisterState(new FSMLite.State()
            {
                Name = LevelStateClose
            });
            LevelFsm.GetState(LevelStateOpen).OnStateInEvent.AddListener(() =>
            {
                DistortionMask.SetActive(false);
            });
            LevelFsm.GetState(LevelStateClose).OnStateInEvent.AddListener(() =>
            {
                DistortionMask.SetActive(true);
            });

            UI.SetLevelFSM(LevelFsm);
            LevelFsm.Start(LevelStateOpen);

            if (LevelPrefabList.Count > CurrentLevelIndex)
            {
                var levelPrefab = LevelPrefabList[CurrentLevelIndex];
                var levelGo     = Instantiate(levelPrefab, transform);
                if (!(levelGo is null))
                {
                    Level = levelGo.GetComponent <Level.Level>();
                }
                switchCameraLimit();
            }
        });
        GameFSM.GetState(GameStateLevel).OnStateOutEvent.AddListener(() =>
        {
            UI.UnSetLevelFSM(LevelFsm);
            LevelFsm.Clear();
            LevelFsm = null;
            Destroy(Level.gameObject);
        });

        UI.SetGameFSM(GameFSM);

        GameFSM.Start(GameStateMenu);
    }
Example #2
0
    public void SetGameFSM(FSMLite gameFSM)
    {
        gameFSM.GetState(Game.GameStateMenu).OnStateInEvent.AddListener(() => { _menuPanel.gameObject.SetActive(true); });
        gameFSM.GetState(Game.GameStateMenu).OnStateOutEvent.AddListener(() => { _menuPanel.gameObject.SetActive(false); });

        gameFSM.GetState(Game.GameStateLevel).OnStateInEvent.AddListener(() => { _levelPanel.gameObject.SetActive(true); });
        gameFSM.GetState(Game.GameStateLevel).OnStateOutEvent.AddListener(() => { _levelPanel.gameObject.SetActive(false); });

        gameFSM.GetState(Game.GameStateScore).OnStateInEvent.AddListener(() => { _scorePanel.gameObject.SetActive(true); });
        gameFSM.GetState(Game.GameStateScore).OnStateOutEvent.AddListener(() => { _scorePanel.gameObject.SetActive(false); });

        gameFSM.GetState(Game.GameStateFinish).OnStateInEvent.AddListener(() => { _finishPanel.gameObject.SetActive(true); });
        gameFSM.GetState(Game.GameStateFinish).OnStateOutEvent.AddListener(() => { _finishPanel.gameObject.SetActive(false); });

        _startGameButton.onClick.AddListener(() =>
        {
            Game.Get().GameFSM.SetState(Game.GameStateLevel);
            Sounds.Get().PlayStartButtonSound();
        });
        _restartGameButton.onClick.AddListener(() =>
        {
            Game.Get().GameFSM.SetState(Game.GameStateLevel);
        });
    }
Example #3
0
 public void UnSetLevelFSM(FSMLite levelFSM)
 {
     levelFSM.GetState(Game.LevelStateClose).OnStateInEvent.RemoveListener(OnLevelStateCloseIn);
     levelFSM.GetState(Game.LevelStateOpen).OnStateInEvent.RemoveListener(OnLevelStateOpenIn);
 }