【发布时间】:2018-07-29 03:17:13
【问题描述】:
我正在构建一个简单的 2D 游戏,基本上是植物大战僵尸的克隆,用于学习目的。
我可以在我的游戏中添加不同的防守者,并且我希望我的一名防守者在游戏中实例化时播放持续的声音。
所以声音应该在开始时保持清醒并循环播放,直到防守者被杀死。 问题是,如果我在游戏中实例化多个防御者,它们都会播放相同的声音,而且会叠加。
我觉得我已经尝试了所有方法,最终归结为这个问题。 如果我将 AudioSource 放在防御者本身上,声音会堆积起来。 如果我将 AudioSource 放在不同的 GameObject 中,那么当防御者被摧毁时声音不会停止。
我错过了什么?我试图为防御者类创建一个静态音频源,但这也不起作用。我试图将其与防御者的健康状况联系起来,一旦防御者的健康状况为 0(=死亡),就切换一个布尔值,但我的解决方案都没有奏效。
这是我在 Defender 上的最后一次脚本尝试。
private static AudioSource audioSource;
// Use this for initialization
void Start () {
audioSource = gameObject.GetComponent<AudioSource>();
if (!audioSource.isPlaying){
audioSource.Play();
}
}
【问题讨论】:
-
“即使防御者已经被摧毁,声音也不会停止。”声音不会自行停止。你必须用
audioSource.Stop()阻止它。 -
但是什么时候?什么时候停止声音?在我写的时候,我试着把它和防守者的生命值联系起来,一旦生命值降到零就停止声音,但这也没有用。
-
您可以随时停止声音。我不知道你什么时候要停止停止,所以我忍不住,但我的第一条评论显示了如何停止声音
-
该问题与您面临的实际问题无关。因此对未来的读者没有用处。我建议您编辑或删除问题。
-
@marvinb89 让我知道我的解决方案是否明确。或者,如果您正在寻找其他东西
标签: unity3d audio-source