我正在构建一个简单的2D游戏,基本上是一个植物对僵尸的克隆,为了学习的目的。
我可以添加不同的后卫到我的游戏,我希望我的一个后卫发挥一个持续的声音时,它是实例化在游戏中。
所以声音应该从一开始就醒着,循环起来,直到防守者被杀死。问题是,如果我在游戏中实例化一个以上的防守者,他们都会演奏相同的声音,这会堆叠起来。
我觉得我什么都试过了,这归结于这个问题。如果我把AudioSource放在防守者身上,声音就会堆积起来。如果我把AudioSource放在不同的GameObject中,那么当防御者被摧毁时,声音不会停止。
我遗漏了什么?我试图为defender类创建一个静态AudioSource,但这也不起作用。我试着将它与维护者的健康状况联系起来,一旦维护者的健康值为0(= health ),切换一个布尔值,但我的解决方案都没有起作用。
这是我最后一次尝试防守者。
private static AudioSource audioSource;
// Use this for initialization
void Start () {
audioSource = gameObject.GetComponent<AudioSource>();
if (!audioSource.isPlaying){
audioSource.Play();
}
}发布于 2018-07-28 13:17:23
正如@程序员所说的,您需要像这样停止音频源:
audioSource.Stop()现在是什么时候。据我所知,你希望有一个独特的音频源播放,只要其中一个防守者还活着。所以你能做的就是在你提到的非防御者GameObject中创建一个计数器。还有一种从维护者脚本中修改此计数器的公共方法,其方式如下:
然后你检查:
如果您有几种类型的仆从,有不同的声音,您可以有不同的计数器和不同的方法被调用从仆从脚本开始和播放不同的声音。
https://stackoverflow.com/questions/51570297
复制相似问题