有一个带背景音乐的AudioSource。执行完某个操作后,StopAllAudio会被激活。我想背景音乐不关,怎么办?
发布于 2019-04-08 13:46:13
我只会猜测你使用的是来自this thread的StopAllAudio,如下所示
private AudioSource[] allAudioSources;
private void Awake()
{
allAudioSources = FindObjectsOfType<AudioSource>();
}
public void StopAllAudio()
{
foreach(var audioSource in allAudioSources)
{
audioSource.Stop();
}
}因此,如果您想要将某个(或多个) AudioSource排除在停止运行之外,您可以使用
// configure this in the Inspector
// set the size and reference according AudioSource(s)
// e.g. your background music source
public List<AudioSource> doNotStopSources = new List<AudioSource>();
private AudioSource[] allAudioSources;
privtae void Awake()
{
allAudioSources = FindObjectsOfType<AudioSource>();
}
public void StopAllAudio()
{
foreach(var audioSource in allAudioSources)
{
// ignore AudiioSource if it is in doNotStopSources
if(doNotStopSources.Contains(audioSource)) continue;
audioSource.Stop();
}
}发布于 2019-04-08 15:44:45
为什么不使用unity内置的音频混音器呢?您可以为您创建的“组”设置级别,然后将其分配给各种声源,这允许您对特定的组进行静音、更改音量、添加效果等。例如“环境”、“咒语”、“鼻咽癌谈话”、“音乐”
有关unity的文档,请参阅:https://docs.unity3d.com/Manual/AudioMixer.html
https://stackoverflow.com/questions/55566695
复制相似问题