using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class GameManager : MonoBehaviour { public float gameTime = 20; public float totalTimeElapsed = 0; public int playerScore = 0; [Header("GAME UI")] public Text timeRemaining; public Text gameOverText; public Button PlayAgain; public Text PlayAgainText; public Text distanceTravelled; public Button QuitGame; public Text QuitText; public Text pointsScored; private void Start() { gameOverText.enabled = false; PlayAgain.enabled = false; PlayAgain.image.enabled = false; PlayAgainText.enabled = false; QuitGame.enabled = false; QuitGame.image.enabled = false; QuitText.enabled = false; timeRemaining.text = gameTime.ToString(); Time.timeScale = 1; totalTimeElapsed = 0; } void FixedUpdate() { if (gameTime <= 0) { gameOver(); distanceTravelled.text = string.Format("{0:#0.00} meters", totalTimeElapsed); } else { totalTimeElapsed += Time.deltaTime; gameTime -= Time.deltaTime; timeRemaining.text = Mathf.Floor(gameTime).ToString(); distanceTravelled.text = string.Format("{0:#0.00} meters", totalTimeElapsed); } } public void AddScore(int points) { playerScore += points; //This convert the score (a number) into a string pointsScored.text = playerScore.ToString(); } public void AdjustTime(float amount) { gameTime += amount; if (amount < 0) { SlowWorldDown(); } } public void SlowWorldDown() { // Cancel any invokes to speed the world up // Then slow the world down for less than 1 second CancelInvoke(); Time.timeScale = 0.5f; Invoke("SpeedWorldUp", 1); } void SpeedWorldUp() { Time.timeScale = 1f; } public void ExitGame() { Application.Quit(); Debug.Log("Game is exiting"); } public void RestartGame() { SceneManager.LoadScene("GameLoad"); } //public void RestartGame() { SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex); } public void resetScore() { playerScore = 0; } public void gameOver() { Time.timeScale = 0; gameOverText.enabled = true; distanceTravelled.text = string.Format("{0:#0.00} meters", totalTimeElapsed); timeRemaining.text = "0"; distanceTravelled.text = "0"; PlayAgain.enabled = true; PlayAgain.image.enabled = true; PlayAgainText.enabled = true; QuitGame.enabled = true; QuitGame.image.enabled = true; QuitText.enabled = true; } }