void OnGameStateChangeEvent(GameStateChangeEvent evt)
        {
            // Only enable input if game state is play.
            m_MinifigController.SetInputEnabled(evt.NewGameState == GameState.Play);

            // If we have won, turn to the camera and do a little celebration!
            if (evt.CurrentGameState == GameState.Play && evt.NewGameState == GameState.Win)
            {
                m_MinifigController.TurnTo(Camera.main.transform.position);

                var randomCelebration = Random.Range(0, 3);
                switch (randomCelebration)
                {
                case 0:
                {
                    m_MinifigController.PlaySpecialAnimation(MinifigController.SpecialAnimation.AirGuitar);
                    break;
                }

                case 1:
                {
                    m_MinifigController.PlaySpecialAnimation(MinifigController.SpecialAnimation.Flexing);
                    break;
                }

                case 2:
                {
                    m_MinifigController.PlaySpecialAnimation(MinifigController.SpecialAnimation.Dance);
                    break;
                }
                }
            }
        }
示例#2
0
 public void Switch()
 {
     if (gameState == null)
     {
         gameState = GameStateChangeEvent.Import();
     }
     gameState.Value = targetState;
 }
示例#3
0
 static GameStateChangeEvent GameStateObjCache = null;     // object cache
 public static GameStateChangeEvent GameStateAsset()
 {
     if (GameStateObjCache == null)
     {
         GameStateObjCache = Resources.Load <GameStateChangeEvent>("GameState");
     }
     return(GameStateObjCache);
 }                                                       // end method GameStateAsset
示例#4
0
        private void OnGameOver(IEventData eventData)
        {
            GameStateChangeEvent stateEvent = eventData as GameStateChangeEvent;

            if (stateEvent.State == GameState.GameOver)
            {
                EndSession();
            }
        }
    void OnGameStateChanged(GameStateChangeEvent @event)
    {
        if (@event.current != state)
        {
            return;
        }

        controller.enabled = false;
        transform.position = position;
        controller.enabled = true;
    }
示例#6
0
        private void OnGameStateChange(IEventData eventData)
        {
            GameStateChangeEvent stateEvent = eventData as GameStateChangeEvent;

            if (stateEvent.State == GameState.GameOver)
            {
                OnGameOver();
            }
            else
            {
                HideMenu();
            }
        }
示例#7
0
    void Awake()
    {
        if (instance == null)
        {
            instance               = this;
            scoreChangeEvent       = new ScoreChangeEvent();
            onGameStateChange      = new GameStateChangeEvent();
            updateLeaderboardEvent = new UnityEvent();
#if UNITY_WEBGL
            Application.targetFrameRate = -1;
#endif
            LeaderBoards = new Dictionary <GameState, int[]>();
            StartCoroutine(GetLeaderboard());
            previousStates    = new Stack <GameState>();
            previousTimeScale = 1f;
        }
        else if (instance != this)
        {
            Destroy(gameObject);
        }
        DontDestroyOnLoad(this);
    }
示例#8
0
 // Start is called before the first frame update
 void Start()
 {
     gameState = GameStateChangeEvent.Import();
 }
 void OnEnable()
 {
     gameStates = GameStateChangeEvent.Import();
     gameStates.AddHandler(OnGameStateChange);
     OnGameStateChange();
 }
 public void OnGameStateChangeEvent(GameModes mode)
 {
     GameStateChangeEvent?.Invoke(mode);
     enumerator = PlayerList.GetEnumerator();
 }