Добавление аудиоклипа из папки "Ресурсы" через код

63
5

Как добавить и воспроизвести короткий аудиоклип по имени в коде Unity? Я тестировал множество образцов из Интернета, но никто не работает.

    AudioSource audio = gameObject.AddComponent<AudioSource>();
audio.Play((AudioClip)Resources.Load("clip1"));​

Во вторую строку:

Активы/Ресурсы/ClickAction.cs(14,55): ошибка CS1525: Неожиданный символ ''

enter image description here

спросил(а) 2021-01-25T12:30:03+03:00 4 месяца, 2 недели назад
1
Решение
62

AudioSource.Play() не принимает AudioClip в качестве параметра.

AudioSource.PlayOneShot() делает. Павел также говорил об этом, за исключением того, что в его ответе не было приведено никакого примера кода.

Вот как выглядит прототип игры:

public void Play();
public void Play(ulong delay);

Ни один из них не принимает AudioClip качестве параметра.

Так должно быть:

AudioSource audio = gameObject.AddComponent<AudioSource>();
audio.PlayOneShot((AudioClip)Resources.Load("clip1"));

Вы можете использовать функцию Play() из своего вопроса, но сначала вы должны назначить AudioSource.clip с помощью (AudioClip)Resources.Load("clip1"); перед вызовом функции Play().

Таким образом, это тоже должно работать:

AudioSource audio = gameObject.AddComponent<AudioSource>();
audio.clip = (AudioClip)Resources.Load("clip1");
audio.Play();

ответил(а) 2021-01-25T12:30:03+03:00 4 месяца, 2 недели назад
45

Что значит "не работает"? У меня нет Unity, установленного прямо сейчас, но, просматривая документацию, кажется, что вы должны использовать PlayOneShot вместо Play: https://docs.unity3d.com/ScriptReference/AudioSource.PlayOneShot.html

ответил(а) 2021-01-25T12:30:03+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема