Exemplo n.º 1
0
    void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.tag == "Player")
        {
            AudioSource.PlayClipAtPoint(m_garbageNoise, gameObject.transform.position);
            ItemSpawner itemSpawner = Object.FindObjectOfType <ItemSpawner>();
            itemSpawner.m_GarbageCount--;
            itemSpawner.m_SpawnPointFull[m_SpawnLocal] = false;
            VacGun vacGun = Object.FindObjectOfType <VacGun>();
            vacGun.m_LoadedGarbage++;
            GameManager gameManager = Object.FindObjectOfType <GameManager>();
            itemSpawner.m_AllGarbage.Remove(gameObject);

            Destroy(gameObject);
            Debug.Log(itemSpawner.m_GarbageCount);
        }
    }
Exemplo n.º 2
0
    // Update is called once per frame
    void Update()
    {
        switch (m_GameState)
        {
        //case GameState.Opening:
        //break;
        case GameState.Waiting:
            break;

        case GameState.Opening:
            Cursor.lockState = CursorLockMode.None;
            Cursor.visible   = true;
            UpdatePauseState = true;
            m_PauseState     = PauseState.StartMenu;
            m_GameState      = GameState.Paused;
            break;

        case GameState.Start:
            ChangeVolume();
            ChangeFOV();
            m_PlayerParts[0].gameObject.transform.position = new Vector3(0, -0.5f, 0);
            m_PlayerParts[0].gameObject.transform.rotation = new Quaternion(0, 0, 0, 0);
            ItemSpawner itemSpawner = UnityEngine.Object.FindObjectOfType <ItemSpawner>();
            int         i           = 0;
            foreach (bool bools in itemSpawner.m_SpawnPointFull)
            {
                itemSpawner.m_SpawnPointFull[i] = false;
                i++;
            }
            itemSpawner.m_GarbageCount   = 0;
            itemSpawner.m_garbageSpawned = false;
            m_DisplayTime    = m_LevelTime;
            UpdatePauseState = true;
            m_PauseState     = PauseState.Off;
            m_GameState      = GameState.Playing;
            break;

        case GameState.Playing:
            //MOVE    AudioListener.volume = m_VolumeSlider.value;
            //m_VolumeSliderText.text = "Volume: " + Mathf.RoundToInt(m_VolumeSlider.value * 100).ToString() + "%";
            //m_FOVSliderText.text = "FOV: " + Mathf.RoundToInt((m_FOVSlider.value * 100) + 30).ToString();
            //m_MessageText.text = "Ready...";
            //Time.timeScale = 0;
            //waitFor = 3;
            //StartCoroutine(WaitCommand(waitFor));
            //WaitUntil waitUntil = wait == true;
            //m_MessageText.text = "Go!";
            //StartCoroutine(Timer(m_DisplayTime, m_TimerDisplay));
            //waitFor = 0.5f;
            //StartCoroutine(WaitCommand(waitFor));
            //Time.timeScale = 1;
            if (Input.GetKeyUp(KeyCode.Escape) && m_isGamePaused == false)
            {
                PauseGame();
            }
            m_DisplayTime -= Time.deltaTime;
            int seconds = Mathf.RoundToInt(m_DisplayTime);
            m_TimerDisplay.text = string.Format("{0:D2}:{1:D2}", (seconds / 60), (seconds % 60));
            if (m_DisplayTime <= 0)
            {
                //vacGun = UnityEngine.Object.FindObjectOfType<VacGun>();
                //vacGun.m_LoadedGarbage = 0;
                //m_GarbageLoadedDisplay.text = "Ammo:\n" + vacGun.m_LoadedGarbage.ToString();
                GameStateStartUp = true;
                m_GameState      = GameState.GameOver;
            }
            m_ScoreDisplay.text = "Score:\n" + m_Score.ToString();
            VacGun vacGun = UnityEngine.Object.FindObjectOfType <VacGun>();
            m_GarbageLoadedDisplay.text = "Ammo:\n" + vacGun.m_LoadedGarbage.ToString();
            break;

        case GameState.Paused:
            Cursor.lockState = CursorLockMode.None;
            Cursor.visible   = true;
            foreach (GameObject gameObject in m_InGameHUD)
            {
                gameObject.gameObject.SetActive(false);
            }
            Time.timeScale = 0;
            m_isGamePaused = true;
            foreach (Component part in m_PlayerParts)
            {
                part.gameObject.SetActive(false);
            }
            break;

        case GameState.GameOver:
            m_Score = 0;
            vacGun  = UnityEngine.Object.FindObjectOfType <VacGun>();
            vacGun.m_LoadedGarbage      = 0;
            m_ScoreDisplay.text         = "Score:\n" + m_Score.ToString();
            m_GarbageLoadedDisplay.text = "Ammo:\n" + vacGun.m_LoadedGarbage.ToString();
            itemSpawner = UnityEngine.Object.FindObjectOfType <ItemSpawner>();
            foreach (GameObject garbageball in itemSpawner.m_AllGarbage)
            {
                garbageball.SetActive(false);
            }
            itemSpawner.m_AllGarbage.RemoveRange(0, itemSpawner.m_AllGarbage.Count);
            Debug.Log("Game Over");
            //waitFor = 2;
            //StartCoroutine(WaitCommand(waitFor));
            m_HighScoreEditor.AddScore(m_Score, m_PlayerName);
            highscoreEditor highscoreEditor = UnityEngine.Object.FindObjectOfType <highscoreEditor>();
            if (highscoreEditor.m_AddedToHighscores == true)
            {
                m_MessageText.text = "Your final score was " + m_Score + "!\nWell done!";
            }
            else
            {
                m_MessageText.text = "Your final score was " + m_Score + ".";
            }
            m_HighScoreEditor.SaveScores();
            m_GameState      = GameState.Paused;
            UpdatePauseState = true;
            m_PauseState     = PauseState.GameOverMenu;
            break;

        case GameState.Quiting:
            m_HighScoreEditor.SaveScores();
            m_SettingEditor.SaveSettings(m_VolumeSlider, m_FOVSlider);
            Debug.Log("Quiting... Loser!");
            Application.Quit();
            break;
        }
        switch (m_PauseState)
        {
        case PauseState.Off:
            while (UpdatePauseState == true)
            {
                foreach (GameObject gameObject in m_PauseMenu)
                {
                    gameObject.gameObject.SetActive(false);
                }
                Cursor.lockState = CursorLockMode.Locked;
                Cursor.visible   = false;
                foreach (GameObject gameObject in m_InGameHUD)
                {
                    gameObject.gameObject.SetActive(true);
                }
                Time.timeScale = 1;
                m_isGamePaused = false;
                foreach (Component part in m_PlayerParts)
                {
                    part.gameObject.SetActive(true);
                }
                UpdatePauseState = false;
            }
            break;

        case PauseState.StartMenu:
            while (UpdatePauseState == true)
            {
                foreach (GameObject gameObject in m_PauseMenu)
                {
                    gameObject.gameObject.SetActive(false);
                }
                m_PauseMenu[0].SetActive(true);
                m_PauseMenu[2].SetActive(true);
                UpdatePauseState = false;
            }
            break;

        case PauseState.PauseMenu:
            while (UpdatePauseState == true)
            {
                foreach (GameObject gameObject in m_PauseMenu)
                {
                    gameObject.gameObject.SetActive(false);
                }
                m_PauseMenu[0].SetActive(true);
                m_PauseMenu[1].SetActive(true);
                UpdatePauseState = false;
            }
            break;

        case PauseState.GameOverMenu:
            while (UpdatePauseState == true)
            {
                foreach (GameObject gameObject in m_PauseMenu)
                {
                    gameObject.gameObject.SetActive(false);
                }
                m_PauseMenu[0].SetActive(true);
                m_PauseMenu[3].SetActive(true);
                UpdatePauseState = false;
            }
            break;

        case PauseState.HighscoreMenu:
            while (UpdatePauseState == true)
            {
                foreach (GameObject gameObject in m_PauseMenu)
                {
                    gameObject.gameObject.SetActive(false);
                }
                m_PauseMenu[0].SetActive(true);
                m_PauseMenu[4].SetActive(true);
                highscoreEditor highscoreEditor = UnityEngine.Object.FindObjectOfType <highscoreEditor>();
                int             i            = 0;
                string          HSNamesList  = "";
                string          HSScoresList = "";
                foreach (int score in highscoreEditor.m_Scores)
                {
                    HSNamesList  += highscoreEditor.m_ScoreNames[i] + "\n";
                    HSScoresList += highscoreEditor.m_Scores[i].ToString() + "\n";
                    i++;
                }
                m_HighscoresNames.text  = HSNamesList;
                m_HighscoresScores.text = HSScoresList;
                UpdatePauseState        = false;
            }
            break;
        }
    }