AudioClip切断并延迟音频播放

时间:2015-08-09 10:42:55

标签: c# unity3d

我在编写游戏时遇到的声音问题需要一些帮助。

我有一个事件(指针点击),我需要在该事件中播放声音。

播放我正在使用的声音:

Async

在说明之后,我有一堆代码行,然后我重新加载场景重新开始。

到目前为止,声音已播放但被场景重新加载(我猜...),所以我尝试使用延迟

 AudioSource.PlayClipAtPoint(pop, transform.position, 1f);

但它不起作用。谷歌引导我this回答有关WaitForSeconds()的执行情况。我的WaitingForSomething()从不打印等待调试或Time.time,因为当它达到yield返回时,它返回到之前的位置,接下来的50行代码执行得如此之快,以至于2秒被场景切断重装。

所以我的问题是:

  1. 如何强制完全播放AudioClip?

  2. 如果我无法强制完全播放AudioClip,是否有办法强制Unity3D停止并等待完全播放AudioClip?

  3. 感谢。

2 个答案:

答案 0 :(得分:0)

IEnumerator WaitForSound()
{
//PlaySound
yield return new WaitForSeconds(audioClip.lenght)// audioClip is the sound you are playing , this just pseudo code
Application.LoadLevel("SomeLevelname");
}

在调用负载级别之前,只需执行所需的所有代码,然后使用此I枚举器播放声音,等待其持续时间,然后加载级别。

答案 1 :(得分:0)

也许你应该简化它。 Unity本身为您提供了添加音频源的最简单方法。您是否尝试将音频源组件添加到您希望音频源播放的层次结构中的对象?还要确保您的音频监听器是靠近音频源的对象的父级,并且场景中应该只有一个音频监听器。任何音频剪辑都可以添加到音频源,不管多长时间,并且可以使用循环选项。