Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by McYellowBird · Jan 03, 2018 at 10:48 AM · tower-defense

Problem with pause menu/button - It doesn't pause

I'm new to C# and I'm making a game, with a pause menu. I believe time.timeScale is the problem. The button just uses the Toggle function. The pause menu worked before I updated the WaveSpawner script to spawn each wave with different enemies

Pause Menu Script

 public GameObject ui;

 public string menuSceneName = "MainMenu";

 public SceneFader sceneFader;

 public Text roundsText;

 void Update ()
 {
     roundsText.text = PlayerStats.Rounds.ToString();

     if (Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.P))
     {
         Toggle();
     }
 }

 public void Toggle()
 {
     ui.SetActive(!ui.activeSelf);

     if (ui.activeSelf)
     {
         Time.timeScale = 0f;
     }
     else
     {
         Time.timeScale = 1f;
     }
 }

WaveSpawner Script

public static int EnemiesAlive = 0;

public GameOver gameOver;

public Wave[] waves;

public Transform spawnPoint;

public float timeBetweenWaves = 5f; private float countdown = 2f;

public Text waveCountdownText;

private int waveNumber = 0;

void Update () { if (EnemiesAlive > 0) { return; }

  if (countdown <= 0f)
  {
      StartCoroutine(SpawnWave());
      countdown = timeBetweenWaves;
      return;
  }

  countdown -= Time.deltaTime;

  countdown = Mathf.Clamp(countdown, 0f, Mathf.Infinity);

  waveCountdownText.text = string.Format("{0:00.00}", countdown);

  if (gameOver)
  {
      this.enabled = false;
  }

}

IEnumerator SpawnWave () { PlayerStats.Rounds++;

  Wave wave = waves[waveNumber];

  for (int i = 0; i < wave.count; i++)
  {
      SpawnEnemy(wave.enemy);
      yield return new WaitForSeconds(1f / wave.rate);
  }

  waveNumber++;

  if (waveNumber == waves.Length)
  {
      Debug.Log("Level Won!");
      this.enabled = false;
  }

}

void SpawnEnemy(GameObject enemy) { Instantiate(enemy, spawnPoint.position, spawnPoint.rotation); EnemiesAlive++; } }

Comment
Add comment · Show 3
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Lysander · Jan 03, 2018 at 11:21 AM 0
Share

And what's the problem, exactly? Did you toss in some Debug.Logs to see if the functions are firing? Worth noting that unless the objects in your game either multiply their movements by Time.deltaTime or use FixedUpdate, putting the Time.timeScale to zero isn't going to affect them.

avatar image McYellowBird Lysander · Jan 04, 2018 at 11:22 PM 0
Share

Sorry, I didn't explain it too well. The pause menu paused the game properly before I updated my WaveSpawner to spawn waves with different enemies each wave.

 public static int EnemiesAlive = 0;

 public GameOver gameOver;

 public Wave[] waves;

 public Transform spawnPoint;

 public float timeBetweenWaves = 5f;
 private float countdown = 2f;

 public Text waveCountdownText;

 private int waveNumber = 0;

 void Update ()
 {
     if (EnemiesAlive > 0)
     {
         return;
     }

     if (countdown <= 0f)
     {
         StartCoroutine(SpawnWave());
         countdown = timeBetweenWaves;
         return;
     }

     countdown -= Time.deltaTime;

     countdown = $$anonymous$$athf.Clamp(countdown, 0f, $$anonymous$$athf.Infinity);

     waveCountdownText.text = string.Format("{0:00.00}", countdown);

     if (gameOver)
     {
         this.enabled = false;
     }
 }

 IEnumerator SpawnWave ()
 {
     PlayerStats.Rounds++;

     Wave wave = waves[waveNumber];

     for (int i = 0; i < wave.count; i++)
     {
         SpawnEnemy(wave.enemy);
         yield return new WaitForSeconds(1f / wave.rate);
     }

     waveNumber++;

     if (waveNumber == waves.Length)
     {
         Debug.Log("Level Won!");
         this.enabled = false;
     }
 }

 void SpawnEnemy(GameObject enemy)
 {
     Instantiate(enemy, spawnPoint.position, spawnPoint.rotation);
     EnemiesAlive++;
 }

}

avatar image McYellowBird Lysander · Jan 07, 2018 at 03:56 AM 0
Share

I had a look and my enemies move with Time.deltaTime, I'm not sure why it's not working

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

121 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

I need help with TowerDefense based game. 1 Answer

Movement following the A* algorithm 0 Answers

Clicking on a 2d image and placing 3d object? 0 Answers

Enemy AI using pathfinding to avoid obstacles 1 Answer

Unity Asset TowerDefense-ToolKit free version errors 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges