Redarea, întreruperea sau oprirea unui singur efect sonor

Pagina actualizată :
Data creării paginii :

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 efectelor sonore

Există mai multe moduri de a reda efecte sonore, dar aici vrem să vă prezentăm un mod simplu de a le reda în timp ce utilizați funcțiile standard.

Conținutul este de a aranja un buton și de a reda, întrerupe și opri făcând clic pe buton. Într-un joc real, puteți implementa același proces, altul decât butoanele.

Mai întâi, plasați un buton pentru a reda efectul sonor așa cum se arată în figură.

Adăugați fișierul de sunet pregătit plasându-l în proiect.

Apoi, adăugați "Sursă audio" în ierarhie.

Când selectați sursa audio pe care ați creat-o, componenta Sursă audio are un clip audio, în care fixați un fișier audio din proiect pentru a-l configura.

Apropo, dacă începeți jocul așa cum este, efectul sonor pe care l-ați setat va fi redat brusc. Acest lucru se datorează faptului că este bifată opțiunea "Joacă la începutul jocului". Este puțin probabil ca efectul sonor să fie redat brusc, așa că lăsați această verificare nebifată.

Apoi, creați un script. SoundPlayer Lăsați numele ca .

Scenariul arată astfel:

using UnityEngine;

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

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

  public void OnClickPause()
  {
    // オーディオを一時停止します
    AudioSource.Pause();
  }

  public void OnClickStop()
  {
    // オーディオを停止します
    AudioSource.Stop();
  }
}

AudioSource va fi setat ulterior de la editor. Această sursă audio este cea cu efectul sonor setat mai devreme.

AudioSource, și metode, astfel încât să puteți reda, întrerupe șiPlayPauseStop, respectiv, opri.

Puteți atașa scriptul la sursa audio, dar în acest caz îl veți atașa la EventSystem. Asigurați-vă că scriptul este populat cu sursa audio pe care ați creat-o anterior.

Acum atribuiți fiecare metodă evenimentului de clic al celor trei butoane.

După ce ați terminat, rulați jocul și vedeți dacă efectele sonore sunt redate.

Redare, pauză și oprire sunt termeni utilizați în mod obișnuit, deci nu trebuie să le scrieți în detaliu, dar cred că funcționează după cum urmează.

  • Când faceți clic pe butonul de redare, efectul sonor este redat o singură dată și redat până la sfârșit.
  • În timpul redării, faceți clic pe butonul de pauză pentru a opri redarea sunetului
  • Când faceți clic pe butonul de redare în timpul pauzei, sunetul este redat din poziția oprit.
  • Faceți clic pe butonul de oprire în timpul redării pentru a opri redarea sunetului
  • Faceți clic pe butonul de redare în timp ce sunteți oprit pentru a reda de la început
  • Dacă faceți clic pe butonul de oprire în timpul pauzei, veți elibera poziția întreruptă și data viitoare când jucați, va fi de la început.
  • Dacă faceți clic pe butonul de redare în timpul redării, sunetul redat în prezent este oprit și redat de la început.

Dezavantaje ale utilizării numai a AudioSource

Există o soluție, dar aceste sfaturi au următoarele dezavantaje. Vom acoperi aceste soluții într-un alt sfat.

Nu pot reda două sau mai multe sunete identice în același timp

Puteți verifica acest lucru apăsând butonul de redare de mai multe ori, dar sunetul anterior dispare atunci când redați un sunet nou. Vorbind despre dezavantaje, este un dezavantaj, dar dimpotrivă, dacă redați același sunet unul peste celălalt, volumul va fi foarte tare, deci este un avantaj în sensul că îl împiedică. Cu toate acestea, sunetul anterior va dispărea în continuare, deci, în funcție de tipul de sunet, va fi nefiresc.

Trebuie să aveți cât mai multe surse audio câte tipuri de sunete pot fi redate

Deoarece un singur clip audio poate fi setat într-o sursă audio, trebuie să furnizați o sursă audio, deoarece aveți câte sunete doriți. De asemenea, puteți pregăti o singură sursă audio și puteți schimba clipul audio atunci când redați un sunet diferit. Este nefiresc, deoarece sunetul anterior dispare din cauza problemei că două sau mai multe din același sunet scris înainte nu pot fi redate în același timp.