Одной из возможных причин того, что звук все равно идет через один и тот же audio source, может быть неправильная настройка аудио-миксера в вашей игре.
Чтобы изменить источник звука для его воспроизведения через другое аудио устройство, вы можете использовать AudioListener в Unity.
Сначала вам нужно создать объект AudioListener в сцене (например, просто добавьте его к главной камере сцены). Этот объект будет слушать звуки и применять настройки аудио-миксера.
Затем вы можете изменять настройки аудио-миксера в коде, чтобы выбрать разные audio source'ы для разных категорий звуков. Например, вы можете использовать AudioMixerGroup в Unity, чтобы создать группы для разных категорий звуков и присоединить к ним разные audio source'ы. Затем вы можете использовать функцию SetOutputAudioMixerGroup() для каждого audio source'а, чтобы выбрать нужную группу для воспроизведения звука.
Вот пример кода, демонстрирующий, как изменить вывод звука для разных категорий звуков:
```csharp
using UnityEngine;
using UnityEngine.Audio;
public class SoundManager : MonoBehaviour
{
public AudioMixerGroup backgroundMusicMixerGroup;
public AudioMixerGroup soundEffectsMixerGroup;
public AudioSource backgroundMusicSource;
public AudioSource soundEffectsSource;
void Start()
{
// Устанавливаем audio source'ы в нужные audio mixer группы
backgroundMusicSource.outputAudioMixerGroup = backgroundMusicMixerGroup;
soundEffectsSource.outputAudioMixerGroup = soundEffectsMixerGroup;
// Пример воспроизведения фоновой музыки через backgroundMusicSource
backgroundMusicSource.Play();
// Пример воспроизведения звука эффекта через soundEffectsSource
soundEffectsSource.PlayOneShot(soundEffectClip);
}
}
```
В этом примере вы должны иметь две разные AudioMixerGroup для фоновой музыки и звуков эффектов, и два AudioSource – один для каждой категории звуков. Устанавливая outputAudioMixerGroup для каждого audio source'а, вы можете выбирать, в какую группу отправить звук.