我在脚本中有几个音频源,想法是一个用于效果而另一个用于音乐。我注意到如果一个效果与另一个效果同时播放,它实际上会阻止前一个效果播放,可能是因为它们是从同一个音频源播放。
我的问题是,每次我想播放一个新声音时,我是否真的需要实例化一个新的音频源,只是为了确保一个声音不会停止当前播放的声音?还有更好的方法吗?
在我的班级中播放音效(和清醒音效)的方法是:
void Awake() {
audioSource = GetComponents<AudioSource>()[0];
audioEffectsSource = GetComponents<AudioSource>()[1];
audioSource.volume = PlayerPrefsManager.getMasterVolume();
audioEffectsSource.volume = PlayerPrefsManager.getSFXMasterVolume();
}
public void playSoundEffect(AudioClip clip)
{
if(clip != null)
{
audioEffectsSource.clip = clip;
audioEffectsSource.volume = PlayerPrefsManager.getSFXMasterVolume();
audioEffectsSource.PlayOneShot(clip);
}
}
该脚本附加到一个音乐管理器游戏对象,该对象有2个音频源,一个用于音乐fx,另一个用于音轨。