В музыкальном приложении в Unity, когда вы помещаете затухание так, что создаваемые звуки не имеют щелчков при остановке, вся музыка, которая находится в фоновом режиме, также входит в затухание.Я хотел бы иметь возможность делать затухание, не вмешиваясь в фоновую музыку, но я не знаю как.Это мой код:
private AudioSource[] sound;
void OnTouchDown()
{
if (instrument == "Piano")
{
FindObjectOfType<PianoAudioManager>().Play("PianoGmaj1G");
}
void OnTouchUp()
{
sound = FindObjectsOfType(typeof(AudioSource)) as AudioSource[];
foreach (AudioSource audioS in sound)
{
StartCoroutine(AudioFadeOut.FadeOut(audioS, 0.02f));
}
}
Как я могу сохранить звук, когда я его активирую, чтобы я мог делать затухание, не затрагивая все остальное?Я застрял с этим в течение нескольких дней, и я не могу найти, как это сделать.Буду очень признателен за любую помощь.Спасибо
Редактировать.Да, извините, мой код PianoAudioManager:
public class PianoAudioManager : MonoBehaviour{
public PianoSound[] PianoSounds;
public static PianoAudioManager instance;
public AudioMixerGroup PianoMixer;
void Awake()
{
if (instance == null)
instance = this;
else
{
Destroy(gameObject);
return;
}
DontDestroyOnLoad(gameObject);
foreach(PianoSound s in PianoSounds)
{
s.source = gameObject.AddComponent<AudioSource>();
s.source.outputAudioMixerGroup = PianoMixer;
s.source.clip = s.clip;
s.source.volume = s.volume;
s.source.pitch = s.pitch;
}
}
public void Play (string name)
{
PianoSound s = Array.Find(PianoSounds, sound => sound.name == name);
if (s == null)
{
Debug.LogWarning("Sound: " + name + " not found!");
return;
}
s.source.Play();
}
}