コード例 #1
0
        // Update is called once per frame
        private IEnumerator Startup()
        {
            State = ProgramStateEnum.StartupScreen;

            // Wait for startup screen to finish
            startupScreen.Activate(State);
            logoObject.SetActive(true);
            while (startupScreen.IsActive)
            {
                yield return(null);
            }
            logoObject.SetActive(false);

            // See whether the player asked to quit
            switch (startupScreen.Result)
            {
            case ProgramStateEnum.Quitting:
                // Done!
                Application.Quit();
                yield break;

            case ProgramStateEnum.ChooseRoom:
            default:
                // Move forward to room scanning
                break;
            }

            // Room scanning!
            StartCoroutine(RoomScanning());

            // Room scanning will launch another loop, so break here
            yield break;
        }
コード例 #2
0
 public override void Activate(ProgramStateEnum state)
 {
     base.Activate(state);
     // TODO turn on all the bells & whistles etc
     LandingPadManager.Instance.PlaceLandingAndStartupPads();
     // Provide feedback for placement
     StartCoroutine(ShowPlacementFeedback());
 }
コード例 #3
0
        private IEnumerator Gameplay()
        {
            // Reset the old gameplay state
            //LanderGameplay.Instance.Reset();

            // Show the controls screen
            State = ProgramStateEnum.ControlsDisplay;
            // Wait for the player to dismiss
            controlsScreen.Activate(State);
            while (controlsScreen.IsActive)
            {
                yield return(null);
            }

            // Now the player will choose where to place the landing pad
            State = ProgramStateEnum.LandingPadPlacement;

            // Wait for landing pad placement to finish
            placementScreen.Activate(State);
            while (placementScreen.IsActive)
            {
                yield return(null);
            }

            State = ProgramStateEnum.Gameplay;
            // Launch gameplay screen and wait for the result
            gameplayScreen.Activate(State);
            while (gameplayScreen.IsActive)
            {
                yield return(null);
            }

            State = ProgramStateEnum.GameplayFinished;
            gameplayFinishedScreen.Activate(State);
            while (gameplayFinishedScreen.IsActive)
            {
                yield return(null);
            }

            // Launch another loop based on the player's choice
            switch (gameplayFinishedScreen.Result)
            {
            case ProgramStateEnum.StartupScreen:
                StartCoroutine(Startup());
                break;

            case ProgramStateEnum.ChooseRoom:
            default:
                StartCoroutine(Gameplay());
                break;
            }
            yield break;
        }
コード例 #4
0
        public override void Activate(ProgramStateEnum state)
        {
            base.Activate(state);

            Debug.Log("Activating room scan screen for " + state);

            switch (state)
            {
            case ProgramStateEnum.ChooseRoom:
                // TEMP disable until finished with mesh caching
                Deactivate();
                break;
            // TEMP

            /*chooseRoomMenu.gameObject.SetActive(true);
             * directionIndicator.TargetObject = chooseRoomMenu.gameObject;
             * RefreshRoomButtons();
             * break;*/

            case ProgramStateEnum.ScanOrLoadRoom:
                scanOrLoadRoomMenu.gameObject.SetActive(true);
                directionIndicator.TargetObject = scanOrLoadRoomMenu.gameObject;
                RefreshRoomButtons();
                break;

            case ProgramStateEnum.SavingScan:
                // TEMP disable until finished with mesh caching
                Deactivate();
                break;
            // TEMP

            /*saveRoomMenu.gameObject.SetActive(true);
             * directionIndicator.TargetObject = saveRoomMenu.gameObject;
             * break;*/

            case ProgramStateEnum.ScanRoom:
                // Turn everything off and initiate room scan
                //chooseRoomMenu.gameObject.SetActive(false);
                scanOrLoadRoomMenu.gameObject.SetActive(false);
                saveRoomMenu.gameObject.SetActive(false);
                directionIndicator.TargetObject = null;
                RoomScanManager.Instance.ScanRoom();
                StartCoroutine(ShowRoomScanFeedback());
                break;

            default:
                Debug.LogError("Unknown state choice in " + name + ": " + state);
                break;
            }
        }
コード例 #5
0
        public override void Activate(ProgramStateEnum state)
        {
            base.Activate(state);
            // TEMP - show tutorial first, then input selection
            selectTutorialMenu.SetActive(true);

            // TEMP - disable normal flow

            /*if (LanderInput.Instance.MultipleInputSources) {
             *  selectControlsMenu.SetActive(true);
             * } else {
             *  selectTutorialMenu.SetActive(true);
             * }*/
        }
コード例 #6
0
        private IEnumerator Start()
        {
            lowpass = TitleMusicCutoffHigh;

            State = ProgramStateEnum.Initializing;

            logoObject.SetActive(false);
            while (ContentStartPosition != null && ContentStartPosition.activeSelf)
            {
                // Wait for the fitbox to be dismissed
                yield return(null);
            }

            // Start the main program loop
            StartCoroutine(Startup());
            yield break;
        }
コード例 #7
0
        private IEnumerator RoomScanning()
        {
            // Choose which room scanning state we want
            // If we haven't chosen a room, scan or load a room
            if (RoomScanManager.Instance.CurrentRoom == RoomScanManager.RoomEnum.None)
            {
                // If we have saved rooms, let the player choose one
                if (RoomScanManager.Instance.HasSavedRooms)
                {
                    State = ProgramStateEnum.ScanOrLoadRoom;
                }
                else
                {
                    // Otherwise, just begin scan immediately
                    State = ProgramStateEnum.ScanRoom;
                }
            }
            else
            {
                // If we have chosen a room, let them continue or change
                State = ProgramStateEnum.ChooseRoom;
            }

            // Wait for room scan screen to finish
            roomScanScreen.Activate(State);
            while (roomScanScreen.IsActive)
            {
                yield return(null);
            }

            // Tell the environment generator to start placing rocks and stuff
            EnvironmentManager.Instance.GenerateDynamicEnvironment();

            // Gameplay!
            StartCoroutine(Gameplay());

            // Gameplay will launch another loop, so break here
            yield break;
        }
コード例 #8
0
 public override void Activate(ProgramStateEnum state)
 {
     base.Activate(state);
     StartCoroutine(ShowGameplayFeedback());
 }
コード例 #9
0
 public override void Activate(ProgramStateEnum state)
 {
     base.Activate(state);
     startupTargetObject = new GameObject("Startup target object");
     StartCoroutine(ShowGameplayFeedback());
 }
コード例 #10
0
 public virtual void Activate(ProgramStateEnum state)
 {
     isActive         = true;
     gameScreenResult = state;
     directionIndicator.TargetObject = headsUpTarget;
 }
コード例 #11
0
 public override void Activate(ProgramStateEnum state)
 {
     base.Activate(state);
     startupScreenMenuParent.gameObject.SetActive(true);
     startupMenu.SetActive(true);
 }