我最近在做unity的产线项目时,碰到了一个问题,我要做对产线上机器信息的介绍面板,有对这个信息的音频介绍,但同时还有一个产线整体流程的语音引导,所以有时在查看机器信息介绍时的音频会和产线流程介绍音频同时播放,但还好是以整体流程的介绍为主 的,所以在播放整体流程介绍的音频时,会把机器介绍的音频停掉,解决办法如下:
1.我定义了一个用来存放所有机器信息介绍的组件的数组
public GameObject[] StopAudio;
2.获取所有组件里的AudioSource,然后在播放整体流程音频的代码前面,把所有机器信息介绍的音频给停了
public void Speak(int audioIndex)
{
for(int i = 0; i < StopAudio.Length; i++)
{
m_Audio = StopAudio[i].GetComponent<AudioSource>();
m_Audio.Pause();
}
AudioFlag = 1;
Debug.Log("声音播放");
audioSource.PlayOneShot(audioClips[audioIndex]);
}
3.但是如果是机器介绍的音频先播放的话,我先定义了一个AudioFlag用来判断整体流程介绍的音频是否播放在播放以及是否完毕,当整体流程介绍的音频正在播放且没有播放完毕的时候AudioFlag为1,否则为0,在