Odtwarzanie wielu dźwięków jednocześnie
Ś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ą.