Redați mai multe sunete în același timp
Mediul de verificare
- Windows
-
- Ferestre 11
- Unity Editor
-
- 2021.3.3F1
- Pachet sistem de intrare
-
- 1.3.0
Cerințe preliminare pentru acest sfat
Următoarele setări au fost făcute în avans ca premisă pentru descrierea acestui sfat.
Despre materialul inclus în eșantion
Efectele sonore sunt împrumutate de pe următoarele site-uri.
Despre fișierele audio
Următoarele formate de fișiere audio pot fi redate cu caracteristicile standard ale Unity: Vă rugăm să-l pregătiți în avans, deoarece va fi folosit în aceste sfaturi.
- WAV (.wav)
- OggVorbis (.ogg)
- MPEG nivel 3 (.mp3)
Pentru mai multe informații, consultați documentația oficială a Unității.
Despre redarea audio simultană multiplă
În sfaturile anterioare, am folosit AudioSource pentru a reda un fișier audio, dar când am încercat să facem un singur sunet și mai multe sunete, sunetul anterior a dispărut. De exemplu, dacă aveți două explozii într-un joc, este nefiresc ca primul efect sonor să dispară atunci când a doua explozie generează un efect sonor. Această secțiune descrie cum să redați același sunet de mai multe ori unul peste celălalt.
Pași pentru redarea audio în același timp
Aici, voi explica din punctul în care am creat un nou proiect, dar dacă cunoașteți Unity într-o anumită măsură, puteți tăia doar părțile relevante și le puteți memora.
De data aceasta, efectul sonor va fi redat de fiecare dată când faceți clic pe buton. Creați-vă interfața de utilizare așa cum se arată. Detaliile sunt adecvate și bune.
Adăugați un fișier de sunet plasându-l în proiect.
Adăugați Sursă audio la ierarhie. În acest caz, nu veți seta clipul audio direct la AudioSource.
Adăugați un script. ButtonEvent
Lăsați numele ca .
Scenariul arată astfel:
using UnityEngine;
public class ButtonEvent : MonoBehaviour
{
[SerializeField] private AudioSource AudioSource;
<summary>音声データ。</summary>
[SerializeField] private AudioClip AudioClip;
public void OnClickPlay()
{
// オーディオを再生します
AudioSource.PlayOneShot(AudioClip);
}
}
AudioSource
Gândiți-vă la aceasta ca la o clasă pentru controlul sunetului, la fel ca sfaturile anterioare.
AudioClip
este o clasă care stochează date audio. Puteți seta fișiere audio aici.
AudioSource.PlayOneShot
Dacă îl transmiteți ca argument metodei, puteți reda AudioClip
datele audio.
Sunetul redat prin această metodă este controlat independent.
Dacă apelați din nou această metodă, aceasta va fi redată ca o voce nouă separat de cea anterioară.
Prin urmare, este posibil să redați din nou sunetul de fiecare dată când se apelează această metodă.
Atașați scriptul la EventSystem.
Pentru "Sursă audio", setați "Sursă audio" adăugată la ierarhie.
Pentru "Clip audio", setați un fișier audio din proiect.
În cele din urmă, setați metoda la evenimentul de clic al butonului.
Rulați jocul și faceți clic pe buton. Cred că efectele sonore vor fi redate. De asemenea, dacă faceți clic din nou pe buton în timpul redării, noul sunet va fi redat fără ca sunetul anterior să dispară.
AudioClip
În acest fel, acum este posibil să redați același sunet unul peste celălalt redând sunetul prin .
Acest lucru permite jocului să se joace fără ca sunetul anterior să dispară nefiresc.
Dezavantaje la redarea cu AudioClip
AudioClip
Am reușit să redau sunetul unul peste celălalt redându-l folosind , dar dimpotrivă, apar următoarele dezavantaje.
Sunetul devine zgomotos
După cum puteți vedea dacă faceți clic pe buton continuu, sunetele se suprapun și armonica redată devine din ce în ce mai puternică. De exemplu, dacă doriți să redați un efect sonor atunci când un atac lovește într-un joc, Dacă apar mai multe lovituri în același timp, fără a lua nicio măsură, acestea pot fi redate la un volum anormal.