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); } }
// 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; } }