2016-10-25 5 views
0

Я пытаюсь добавить звук нажатия кнопки на кнопку в моей игре Unity3D. Однако все, что я попробовал (см. Ниже), не дает желаемого эффекта (звук при нажатии.) Кнопка работает, но не создает звук. Следующие ссылки содержат вещи, которые я пробовал, и моя последняя попытка в сценарии также прилагается. Звук настроен для воспроизведения у инспектора (по последней ссылке), поэтому в самом скрипте нет audioSource.play(). Я хочу, чтобы звук для воспроизведения при нажатии на кнопку:Добавление кнопки Click Sound Unity3D 5.4

http://answers.unity3d.com/questions/26241/play-sound-when-gui-button-is-pressed.html http://answers.unity3d.com/questions/182754/play-sound-on-button-press.html http://answers.unity3d.com/questions/857810/play-audio-from-46-ui-button-on-click-script.html

private AudioSource audioSource; 
private float audioTimer; 
public void LoadLevel(string name) 
{ 
    StartCoroutine(AudioLength(audioTimer)); 
    SceneManager.LoadScene(name); 
} 
public void Next(string name) 
{ 
    StartCoroutine(AudioLength(audioTimer)); 
    SceneManager.LoadScene(name); 
} 

void Start() 
{ 
    audioSource = this.GetComponent<AudioSource>(); 
    audioTimer = audioSource.clip.length; 
} 

void Update() 
{ 
    if(Input.GetKeyDown(KeyCode.Escape)) 
    { 
     SceneManager.LoadScene("Start Menu"); 
    } 
    else if(Input.GetKeyDown(KeyCode.Q)) 
    { 
     Application.Quit(); 
    } 
} 

IEnumerator AudioLength(float audioTimer) 
{ 
    yield return new WaitForSeconds(audioTimer); 
} 

ответ

0

Я обнаружил ответ с помощью двух людей более в community.gamedev.tv.

Во-первых, проблема была вызвана сменой сцены, прежде чем звук имел возможность играть. Во-вторых, мне пришлось добавить мой LoadScene в свой Coroutine, чтобы заставить его обработать задержку, а затем загрузить следующую сцену. Мне также пришлось передать переменную name в виде строки через мою сопрограмму.

Смежные вопросы