@TooMajot

Как получить доступ ко всем «AudioSorce» в Unity3d?

Есть код, по которому я должен изменять громкость звуков всех AudioSource на сцене.

void Start()
    {
        AudioSource[] audioSources = GetComponents<AudioSource>();

        foreach (AudioSource audioSource in audioSources)
        {
            audioSource.volume = volume;
        }
    }


Но этот код не работает. А именно после "forech".
До этого я использовал этот метод чтобы найти компоненты на одном объекте, но я использовал:
Collider[] colliders = GetComponentsInChildren<Collider>();


Я могу предположить, что я просто не умею находить компоненты на сцене.
  • Вопрос задан
  • 30 просмотров
Решения вопроса 2
@ReWire_92
Если нужно просто изменить громкость всех источников звука в сцене на одинаковое значение, есть способ сделать это куда правильнее и проще:
AudioListener.volume
Ответ написан
DanceM
@DanceM Куратор тега Unity
Кто хочет -ищет способ, кто не хочет -ищет причину
Я могу предположить, что я просто не умею находить компоненты на сцене.

Ваше предположение верно. GetComponents() ищет компоненты у указанного объекта, а если не указан, у текущего GameObject'а.

Вам нужно FindObjectsOfType()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 февр. 2021, в 05:09
3000 руб./за проект
26 февр. 2021, в 04:16
3000 руб./за проект
26 февр. 2021, в 01:40
1000 руб./за проект