- Home /
How to prevent audio restarting on player respawn
Hi
Quite new to programming and have been trying to make a 2D top down shooter to practice. The problem I'm having is that everytime the player dies and then hits the respawn button, the music resets. I've had a look on these forums to try and come up with a solution and this is as best as I've got so far. I guess I am missing something in the if statement with the 'DontDestroyOnLoad' as it is destroying it.
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class GameController : MonoBehaviour
{
public GameObject hazard;
public Vector2 spawnValue;
public int hazardCount;
public float spawnWait;
public float startWait;
public float waveWait;
public Text scoreText;
private int score;
public Text restartText;
public Text gameOverText;
private bool gameOver;
private bool restart;
private AudioSource music;
void Start ()
{
gameOver = false;
restart = false;
restartText.text = "";
gameOverText.text = "";
score = 0;
UpdateScore ();
StartCoroutine (SpawnWaves ());
if(music.isPlaying)
{
DontDestroyOnLoad(music);
}
else
{
Destroy(music);
music = GameObject.FindWithTag("Music").GetComponent<AudioSource>();
}
}
void Update ()
{
if (restart)
{
if (Input.GetKeyDown (KeyCode.R))
{
Application.LoadLevel (Application.loadedLevel);
}
}
}
IEnumerator SpawnWaves ()
{
yield return new WaitForSeconds (startWait);
while (true)
{
for (int i = 0; i < hazardCount; i++)
{
Vector2 spawnPosition = new Vector2 (Random.Range (-spawnValue.x, spawnValue.x), spawnValue.y);
Quaternion spawnRotation = Quaternion.identity;
Instantiate (hazard, spawnPosition, spawnRotation);
yield return new WaitForSeconds (spawnWait);
}
yield return new WaitForSeconds (waveWait);
if (gameOver)
{
restartText.text = "Press 'R' for restart";
restart = true;
break;
}
}
}
public void AddScore (int newScoreValue)
{
score += newScoreValue;
UpdateScore ();
}
void UpdateScore ()
{
scoreText.text = "SCORE " + score;
}
public void GameOver()
{
gameOverText.text = "GAME OVER";
gameOver = true;
}
}
Your answer

Follow this Question
Related Questions
Menu music stops playing after returning from game level 0 Answers
How to STOP music when loading a SPECIFIC SCENE? 3 Answers
Don't destroy a variable when changing scene 2 Answers
How to stop audio in a scene when DontDestroyOnLoad was already called? 1 Answer
MissingReferenceException in AudioSource on DontDestroyOnLoad GameObject 0 Answers