为什么AudioSource不播放?

时间:2016-04-05 10:28:42

标签: audio unity3d unity5

这是设置

enter image description here

当我GetComponent<AudioSource>().Play()时,没有声音,为什么?

当我检查play on awake时,会播放声音。为什么呢?

1 个答案:

答案 0 :(得分:1)

问题来自ElementControl.cs。在声音发挥之前,你总是在摧毁GameObject。

解决方案1 ​​

您可以找到以下代码:

Destroy(this.gameObject); 

在您的场景中替换为Destroy(this.gameObject, 5); 5 将使其在销毁 GameObject 之前等待 5 秒,并且此时声音可能已完成播放。大约有三个Destroy(this.gameObject);必须更改。寻找他们。

解决方案2(推荐)

将您的void PlayClickAudio()功能更改为Coroutine,然后用StartCoroutine替换任何调用它的代码。在它内部播放声音然后使用audio.isPlaying等到声音播放结束。在OnPointerClick函数中执行其他操作,然后可以使用它来销毁GameObject Destroy(this.gameObject);。原始代码也会使用audio.Play(44100),在播放前会使延迟。将其更改为audio.Play()

以下是解决方案2的新脚本:http://pastebin.com/m1tbVj9k