Играть против PlayOneShot

Для объектов Unity AudioSource, в чем разница между Play и PlayOneShot, помимо их сигнатур методов?

Это просто, что PlayOneShot не остановит уже воспроизводимый звук из AudioSource? Поэтому дайте сценарий, в котором вы можете гарантировать, что вызов AudioSource.Play() не будет повторяться до тех пор, пока его isPlaying Значение boolean равно false, есть ли причина использовать PlayOneShot?

5 голосов | спросил Neeko 18 FebruaryEurope/MoscowbWed, 18 Feb 2015 03:53:56 +0300000000amWed, 18 Feb 2015 03:53:56 +030015 2015, 03:53:56

2 ответа


4

Вы уже определили основное различие: PlayOneShot может воспроизводить несколько звуков, не сокращая друг друга. Однако на flipside это означает, что вы также не можете остановить аудиоклип; он будет просто играть весь путь, не имея возможности остановить его раньше.

* Я думаю; Я не могу проверить это на данный момент, но я помню, что вызов Stop () после воспроизведения PlayOneShot () ничего не делает.

ответил jhocking 18 FebruaryEurope/MoscowbWed, 18 Feb 2015 06:00:20 +0300000000amWed, 18 Feb 2015 06:00:20 +030015 2015, 06:00:20
1

Мы нашли очень легкое решение этой проблемы.

Если вы хотите отключить все звуки из определенного аудиоисточника, используйте это в своей функции остановки звука:

public void StopSounds()
{
    yourAudioSource.enabled = false;
    yourAudioSource.enabled = true;
}

(Запустите эту функцию, если вы хотите остановить звуки)

Это может быть не самый чистый вариант, но он работает как шарм.

ответил Patrick 3 22015vEurope/Moscow11bEurope/MoscowTue, 03 Nov 2015 18:49:22 +0300 2015, 18:49:22

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132