#unity3d
#unity3d
Вопрос:
Итак, я осматривался, и, похоже, ни одно решение не работает для меня…
Я хочу воспроизвести фоновую музыку во всех сценах без сброса звука.
У меня есть сборный файл с источником звука и scritp.
скрипт выполняет:
private void Awake()
{
GameObject[] objs = GameObject.FindGameObjectsWithTag("BGAudio");
if (objs.Length > 1)
Destroy(this.gameObject);
DontDestroyOnLoad(this.gameObject);
}
Итак, я также пометил сборку, BGAudio
но когда я меняю сцену, она останавливает музыку. Если я добавлю сборку к обеим сценам, она начинается с 0..
Я пытался также использовать синглтон, но это тоже не работает.
Я использую unity 2019 Я использую сборку Android, которая, я думаю, ничего не меняет, но на всякий случай.
Ответ №1:
Только что обнаружил, что DontDestroyOnLoad
это работает только для объектов в корне. Пока мой Bgsound
был внутри bg
пустого объекта.
Ответ №2:
Вы также можете создать совершенно новую сцену, которая включает только ваш объект BGAudio. Загрузите как сцену BGAudio, так и сцену воспроизведения в качестве дополнения.
Например: создайте сцену BGSound. Затем создайте пустой gameobject с именем BGSoundManager. Также создайте свой объект BGSound. Затем добавьте скрипт BGSoundManager в ваш игровой объект BGSoundManager и отредактируйте его следующим образом :
private IEnumerator Start()
{
yield return SceneManager.LoadSceneAsync("BGSound", LoadSceneMode.Additive);
yield return SceneManager.LoadSceneAsync("Level1", LoadSceneMode.Additive);
Destroy(gameObject);
}