Redați, întrerupeți, opriți și redați în buclă muzică de fundal
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
BGM este împrumutat de pe următorul site.
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.
- OggVorbis (.ogg)
- MPEG nivel 3 (.mp3)
Pentru mai multe informații, consultați documentația oficială a Unității.
Despre redarea BGM
Există mai multe moduri de a reda muzică de fundal, dar aici vrem să vă explicăm cum să o redați într-un mod simplu î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 BGM așa cum se arată în figură.
Adăugați fișierul audio 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, BGM-ul pe care l-ați setat va juca brusc. Acest lucru se datorează faptului că este bifată opțiunea "Joacă la începutul jocului". Dacă doriți să îl redați imediat la începutul scenei, nu există nicio problemă așa cum este, dar de data aceasta nu se va reda imediat, așa că lăsați acest cec nebifat.
Apoi, creați un script. MusicPlayer
Lăsați numele ca .
Scenariul arată astfel:
using UnityEngine;
public class MusicPlayer : 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 fișierul audio pe care tocmai l-ați introdus.
AudioSource
, și metode, astfel încât să puteți reda, întrerupe șiPlay
Pause
Stop
, 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ă configurare, rulați jocul și vedeți dacă se redă muzica de fundal.
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, muzica de fundal 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.
Redare în buclă
Redă muzică de fundal în mod implicit și se oprește automat când este redată până la sfârșit. Dacă doriți să redați în buclă muzica de fundal și să continuați redarea, bifați "Buclă" în componenta Sursă audio și va continua să se redea în mod repetat până când apăsați butonul de oprire.
Conținutul redării efectului sonor este același
Dacă ați văzut deja sfaturile pe partea de efecte sonore, este posibil să fi observat că efectul sonor și muzica de fundal pot fi redate cu aceleași setări. În funcție de cadrul jocului, procesarea efectelor sonore și a muzicii de fundal poate fi separată, dar Unity vă permite să redați ambele cu aceeași procesare.
Despre fenomenul că muzica de fundal se întrerupe atunci când fereastra este dezactivată
În mod implicit, atunci când alte ferestre sunt active și ecranul jocului este dezactivat, jocul în sine este întrerupt. Odată cu aceasta, redarea muzicii de fundal este, de asemenea, suspendată.
Pentru a evita acest lucru, îl puteți seta să ruleze în fundal în setările proiectului, astfel încât muzica de fundal să nu fie întreruptă.