Звук не воспроизводится в сборке проекта - PullRequest
0 голосов
/ 15 ноября 2018

Я создал некоторый код, связанный с холстом, сам код управляет двумя кнопками, которые переключаются между собой при нажатии, позволяя проигрывателю включать и выключать музыку. Когда я делаю сборку, звук всегда отключается и не могу понять, почему (кнопки работают нормально). Также, чтобы заявить, что я использую Playerprefs для сохранения настроек, один и тот же код используется во всех моих сценах. Я только хочу принудительно запустить аудио и установить активную кнопку для первой сцены. (Начальная сцена)

  public AudioSource backgroundmusic;
public string sound;

public GameObject SoundOnButton, SoundOffButton;
public bool muted;



void Start ()
{

    backgroundmusic.Play();
    SoundCheck();

   if (sound == "enabled")
    {
        SoundOffButton.SetActive(false);
        SoundOnButton.SetActive(true);
    }

   if (sound == "muted")
    {

        SoundOffButton.SetActive(true);
        SoundOnButton.SetActive(false);
    }

}

private void Update()
{

}


public void SoundOFF()
{
    SoundOffButton.SetActive(false);
    SoundOnButton.SetActive(true);
    muted = false;

    PlayerPrefs.SetString("Sound", "enabled");

    SoundCheck();

}

public void SoundON()
{

    SoundOffButton.SetActive(true);
    SoundOnButton.SetActive(false);
    muted = true;

    PlayerPrefs.SetString("Button", "used");
    PlayerPrefs.SetString("Sound", "muted");

    SoundCheck();


}

public void SoundCheck()
{
    sound = PlayerPrefs.GetString("Sound");

    if (sound == "enabled")
    {

        muted = false;
        backgroundmusic.Stop();
    }
    if (sound == "muted")
    {

        muted = true;
        backgroundmusic.Play();

    }

}

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

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

   public AudioSource backgroundmusic;
public string sound;

public GameObject SoundOnButton, SoundOffButton, Canvas;
public bool muted, notloaded = false;



void Start()
{


    SoundCheck();

    if (notloaded == false)
    {
        if (Canvas == true)
        {
            SoundON();
            notloaded = true;
        }
    }

}



public void SoundOFF()
{

    muted = false;

    PlayerPrefs.SetString("Sound", "enabled");

    SoundCheck();

}

public void SoundON()
{


    muted = true;

    PlayerPrefs.SetString("Sound", "muted");

    SoundCheck();


}

public void SoundCheck()
{
    sound = PlayerPrefs.GetString("Sound");

    if (sound == "enabled")
    {

        muted = false;
        SoundOffButton.SetActive(false);
        SoundOnButton.SetActive(true);
        backgroundmusic.Pause();
        Debug.Log("Enabled");
    }
    if (sound == "muted")
    {

        muted = true;
        SoundOffButton.SetActive(true);
        SoundOnButton.SetActive(false);
        backgroundmusic.Play();
        Debug.Log("Muted");

    }
}

}

0 голосов
/ 15 ноября 2018

Мой первый вопрос: работает ли он в вашем редакторе?Мне было непонятно.

Некоторые вещи, на которые я хотел бы обратить внимание: Убедитесь, что к вашему аудиоисточнику подключен аудиоклип.Убедитесь, что громкость - это какое-то значение, которое вы действительно можете услышать.Убедитесь, что GameObject или родительские объекты GameObject, содержащие AudioSource, не отключены в любое время.Убедитесь, что вашему проекту действительно разрешено создавать звук (звуковой микшер Windows или Mac).

Нет, если ничего из этого не работает.Я бы начал отладку.

Сначала отключите сценарий, который вы используете, чтобы запустить и приостановить вашу музыку и перейти на ваш AudioSource и выбрать «Play on Awake», это должно заставить вашу фоновую музыку начать с игры,если это не так, то теперь у вас возникла другая проблема.

Если он действительно играет с игрой, то создайте простой сценарий.

IEnumerator Start ()
{
    bool control;
    while (true)
    {
        control = !control;
        yield return new WaitForSeconds (1f);
        if (control)
            backgroundmusic.Play ();
        else
            backgroundmusic.Stop ();
    }
}

Вместо Play () и Stop(), вы также можете использовать:

GetComponent <AudioSource> ().volume = 0; and GetComponent <AudioSource> ().volume = 1;

Попробуйте любое из этих решений и дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...