Unity - Фоновая музыка через сцены с помощью слайдера пользовательского интерфейса - PullRequest
0 голосов
/ 27 июня 2018

Я создал игру в Unity с 4 различными сценами (запуск, логин, настройки, сама игра).

С пустым игровым объектом (в начальной сцене) и функцией DontDestroyOnLoad мне удалось воспроизвести музыку во всех сценах без остановки или загрузки новых в каждой сцене.

В сцене параметров есть слайдер, подключенный к основному микшеру звука, который работает до сих пор.

Единственная проблема для меня заключается в том, что ползунок может "мешать" gameobject в начальной сцене (фоновая музыка, которая должна запускаться через ползунок).
Было бы здорово, если бы кто-то мог мне помочь! :)

Вот некоторые выдержки:

ChangeVolume класс:

public AudioMixer audioMixer;

public void setVolume(float volume){
    audioMixer.SetFloat ("volume", volume);
}

и

MusicBehaviour класс:

//Play global
private static MusicBehaviour instance = null;
    public static MusicBehaviour Instance {
        get {
              return instance;
        }
    }

void Awake()
{
    if (instance != null && instance != this) {
        Destroy (this.gameObject);
        return;
    } else {
        instance = this;
    }
    DontDestroyOnLoad (this.gameObject);
}

//Play Global End

//Update is called once per frame
void Update () {
}

Я рад вашей помощи / решениям, может быть, есть более простая! : -)

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Я исправил свою проблему путем редактирования моих скриптов следующим образом:

Music Behaviour класс:

 void Update () {
         float vol = ChangeVolume.vol;
         this.gameObject.GetComponent<AudioSource> ().volume = vol;
     }

Change Volume класс:

public void setVolume(float volume){
    vol = volume;
}

public static float vol = 1.0f;

Я также удалил свой аудиомиксер, так как он больше не нужен. И это работает просто отлично! : -)

0 голосов
/ 27 июня 2018

Самый простой подход - использовать PlayerPrefs и сохранить там значение звука. Каждый раз, когда вы запускаете игру в Awake(), вы устанавливаете значение, а когда срабатывает ползунок, вы изменяете значение в PlayerPrefs и устанавливаете для него значение MusicBehaviour.

...