Используете ли вы источник звука для каждого игрового объекта, для которого вы хотите воспроизвести звук?Если это так, попробуйте создать один игровой объект (назовем его держателем аудиоисточника), который содержит только компонент аудиоисточника.
Имея это в виду, вы можете иметь ссылку на этот компонент Audio Source и вызывать PlayOneShot (звук) из скрипта, для которого вы хотите запустить звук.
Например, давайте предположим, что каждый развыпущена пуля, мы хотим воспроизвести звук:
public class Bullet : MonoBehaviour {
// This AudioSource reference comes from the Audio Source Holder gameobject
public AudioSource audioSource;
public void PlayFireSound(){
audioSource.PlayOneShot(sound);
}
}
Надеюсь, что выше поможет.Вы также можете взглянуть на этот вопрос , где аудиофайл изменен на несжатый формат, например .wav, чтобы увидеть, решена ли ваша проблема.