перевод оригинальной статьи Алессандро Фама - 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:
#unity #unity3d #fmod #audioengine #gamedev #sounddesign #саунддизайн