Odtwarzanie wielu dźwięków jednocześnie

Strona zaktualizowana :
Data utworzenia strony :

Środowisko weryfikacji

Windows
  • Okna 11
Edytor Unity
  • 2021.3.3f1
Pakiet systemu wejściowego
  • 1.3.0

Wymagania wstępne dotyczące tej porady

Poniższe ustawienia zostały wcześniej wprowadzone jako przesłanka do opisu tej wskazówki.

O materiale dołączonym do próbki

Efekty dźwiękowe są zapożyczone z następujących stron.

Informacje o plikach audio

Następujące formaty plików audio mogą być odtwarzane ze standardowymi funkcjami Unity: Proszę przygotować go z wyprzedzeniem, ponieważ zostanie wykorzystany w tych wskazówkach.

  • WAV (.wav)
  • OggVorbis (.ogg)
  • MPEG layer 3 (.mp3)

Aby uzyskać więcej informacji, zapoznaj się z oficjalną dokumentacją Unity.

Informacje o wielokrotnym jednoczesnym odtwarzaniu dźwięku

W poprzednich wskazówkach używaliśmy AudioSource do odtwarzania pliku audio, ale kiedy próbowaliśmy utworzyć pojedynczy dźwięk i wiele dźwięków, poprzedni dźwięk zniknął. Na przykład, jeśli masz dwie eksplozje w grze, nienaturalne jest, że pierwszy efekt dźwiękowy znika, gdy druga eksplozja generuje efekt dźwiękowy. W tej sekcji opisano, jak odtwarzać ten sam dźwięk wiele razy jeden na drugim.

Kroki odtwarzania dźwięku w tym samym czasie

Tutaj wyjaśnię od momentu, w którym stworzyłem nowy projekt, ale jeśli znasz Unity do pewnego stopnia, możesz wyciąć tylko odpowiednie części i zapamiętać je.

Tym razem efekt dźwiękowy będzie odtwarzany za każdym razem, gdy klikniesz przycisk. Utwórz interfejs użytkownika w sposób pokazany na ilustracji. Szczegóły są odpowiednie i dobre.

Dodaj plik dźwiękowy, upuszczając go do projektu.

Dodaj źródło dźwięku do hierarchii. W takim przypadku klip audio nie zostanie ustawiony bezpośrednio na źródło dźwięku.

Dodaj skrypt. ButtonEvent Pozostaw nazwę jako .

Skrypt wygląda tak:

using UnityEngine;

public class ButtonEvent : MonoBehaviour
{
  [SerializeField] private AudioSource AudioSource;

  /// <summary>音声データ。</summary>
  [SerializeField] private AudioClip AudioClip;

  public void OnClickPlay()
  {
    // オーディオを再生します
    AudioSource.PlayOneShot(AudioClip);
  }
}

AudioSource Pomyśl o tym jako o klasie do kontrolowania dźwięku, podobnie jak poprzednie wskazówki.

AudioClip jest klasą, która przechowuje dane audio. Tutaj możesz ustawić pliki audio.

AudioSource.PlayOneShot Jeśli przekażesz go jako argument do metody, możesz odtworzyć AudioClip dane audio. Dźwięk odtwarzany tą metodą jest kontrolowany niezależnie. Jeśli ponownie wywołasz tę metodę, zostanie ona odtworzona jako nowy głos oddzielnie od poprzedniego. Dlatego możliwe jest ponowne odtwarzanie dźwięku za każdym razem, gdy ta metoda jest wywoływana.

Dołącz skrypt do EventSystem.

W polu "Źródło dźwięku" ustaw "Źródło dźwięku" dodane do hierarchii.

Dla "Klip audio" ustaw plik audio z projektu.

Na koniec ustaw metodę na zdarzenie kliknięcia przycisku.

Uruchom grę i kliknij przycisk. Myślę, że efekty dźwiękowe będą grać. Ponadto, jeśli klikniesz przycisk ponownie podczas odtwarzania, nowy dźwięk zostanie odtworzony bez zniknięcia poprzedniego dźwięku.

AudioClip W ten sposób można teraz odtwarzać ten sam dźwięk jeden na drugim, odtwarzając dźwięk za pośrednictwem . Dzięki temu gra może grać bez wcześniejszego nienaturalnego znikania dźwięku.

Wady podczas gry z AudioClip

AudioClip Byłem w stanie odtwarzać dźwięk jeden na drugim, odtwarzając go za pomocą , ale wręcz przeciwnie, występują następujące wady.

Dźwięk staje się hałaśliwy

Jak widać, jeśli klikniesz przycisk w sposób ciągły, dźwięki nakładają się, a odtwarzana harmoniczna staje się coraz głośniejsza. Na przykład, jeśli chcesz odtworzyć efekt dźwiękowy, gdy atak uderzy w grę, Jeśli wiele trafień wystąpi w tym samym czasie bez podejmowania żadnych działań, mogą być odtwarzane z nienormalną głośnością.