我正在构建一个简单的 2D 游戏,基本上是植物大战僵尸的克隆,用于学习目的。
我可以在我的游戏中添加不同的防御者,并且我希望我的一个防御者在游戏中实例化时播放持续的声音。
所以声音应该在开始时保持清醒并循环直到防守者被杀死。问题是,如果我在游戏中实例化多个防御者,它们都会播放相同的声音,这些声音会叠加。
我觉得我已经尝试了一切,它归结为这个问题。如果我将 AudioSource 放在防御者本身上,声音会堆积起来。如果我将 AudioSource 放在不同的 GameObject 中,那么当防御者被摧毁时声音不会停止。
我错过了什么?我尝试为防御者类创建一个静态 AudioSource,但这也不起作用。我试图将其与防御者的健康状况联系起来,一旦防御者的健康状况为 0(=死亡)就切换一个布尔值,但我的解决方案都没有奏效。
这是我在 Defender 上的最后一次脚本尝试。
private static AudioSource audioSource;
// Use this for initialization
void Start () {
audioSource = gameObject.GetComponent<AudioSource>();
if (!audioSource.isPlaying){
audioSource.Play();
}
}