Найти в Дзене
Тихий Уголок

Работа с FMOD Playback States в Unity

перевод оригинальной статьи Алессандро Фама - FMOD Playback States in Unity

перевод оригинальной статьи Алессандро Фама - FMOD Playback States in Unity

FMOD Playback States позволяют нам определить состояния воспроизведения ивента. Играет ли событие в данный момент? Запускается или останавливается в данный момент наш ивент? Приостанавливается ли ивент в точке сустейна (sustain point)?

Скачайте проект Unity & FMOD для этого руководства. Если после открытия проекта у вас возникнут какие-либо ошибки, удалите файл FMODStudioCache.asset, поскольку он содержит старый путь к проекту FMOD Studio.

Playback States особенно полезны, если мы не хотим, чтобы звук воспроизводился дважды, например, из-за некоторых ошибочных состояний.

Как всегда, мы сначала объявляем FMOD EventInstance и строку с путем к ивенту, которое мы будем выбирать в инспекторе:

private FMOD.Studio.EventInstance instance;
[ FMODUnity.EventRef ]
public string fmodEvent;

Мы создаем метод, который объявляет EventInstance в качестве параметра и позволяет нам возвращать PLAYBACK_STATE инстанса:

FMOD.Studio.PLAYBACK_STATE PlaybackState(FMOD.Studio.EventInstance instance)
{
FMOD.Studio.PLAYBACK_STATE pS ;
instance.getPlaybackState(out pS );
return pS ;
}

Как кратко описано выше, данная простая функция должна проверить, был ли уже воспроизведен инстанс. В методе Unity Update() мы воспроизводим инстанс, нажимая клавишу "пробел", и останавливаем его с помощью кнопки "левый Ctrl". На этот раз мы проверяем, воспроизводится ли уже инстанс благодаря PlaybackState():

Точно так же мы можем использовать Playback States, чтобы определить, находится ли инстанс в настоящее время в режиме сустейна (sustain point):

Я добавил Unity Canvas для отображения информации о состоянии воспроизведения ивента в прикрепленном проекте Unity:

Визуализация Playback States в Unity
Визуализация Playback States в Unity

#unity #unity3d #fmod #audioengine #gamedev #sounddesign #саунддизайн