首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略Unity3D中的StopAllAudio()

忽略Unity3D中的StopAllAudio()
EN

Stack Overflow用户
提问于 2019-04-08 13:20:35
回答 2查看 34关注 0票数 0

有一个带背景音乐的AudioSource。执行完某个操作后,StopAllAudio会被激活。我想背景音乐不关,怎么办?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-08 13:46:13

我只会猜测你使用的是来自this threadStopAllAudio,如下所示

代码语言:javascript
复制
private AudioSource[] allAudioSources;

private void Awake() 
{
    allAudioSources = FindObjectsOfType<AudioSource>();
}

public void StopAllAudio() 
{
    foreach(var audioSource in allAudioSources) 
    {
        audioSource.Stop();
    }
}

因此,如果您想要将某个(或多个) AudioSource排除在停止运行之外,您可以使用

代码语言:javascript
复制
// 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();
    }
}
票数 1
EN

Stack Overflow用户

发布于 2019-04-08 15:44:45

为什么不使用unity内置的音频混音器呢?您可以为您创建的“组”设置级别,然后将其分配给各种声源,这允许您对特定的组进行静音、更改音量、添加效果等。例如“环境”、“咒语”、“鼻咽癌谈话”、“音乐”

有关unity的文档,请参阅:https://docs.unity3d.com/Manual/AudioMixer.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55566695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档