Spela upp, pausa, stoppa och loopa bakgrundsmusik

Sidan uppdaterad :
Datum för skapande av sida :

Verifiering miljö

Windows
  • Fönster 11
Unity-redaktör
  • 2021.3.3F1
Paket för inmatningssystem
  • 1.3.0

Förutsättningar för det här tipset

Följande inställningar har gjorts i förväg som en förutsättning för beskrivningen av detta tips.

Om materialet som ingår i provet

BGM lånas från följande webbplats.

Om ljudfiler

Följande ljudfilformat kan spelas upp med Unitys standardfunktioner: Förbered det i förväg eftersom det kommer att användas i dessa tips.

  • OggVorbis (.ogg)
  • MPEG lager 3 (.mp3)

Mer information finns i den officiella Unity-dokumentationen.

Om BGM-uppspelning

Det finns flera sätt att spela bakgrundsmusik, men här vill vi förklara hur man spelar det på ett enkelt sätt när du använder standardfunktionerna.

Innehållet är att ordna en knapp och spela upp, pausa och stoppa genom att klicka på knappen. I ett verkligt spel kan du implementera samma process än knappar.

Placera först en knapp för att spela BGM som visas i figuren.

Lägg till den förberedda ljudfilen genom att släppa den i ditt projekt.

Lägg sedan till "Ljudkälla" i hierarkin.

När du väljer den ljudkälla som du skapade har komponenten Ljudkälla ett ljudklipp där du släpper en ljudfil från projektet för att konfigurera den.

Förresten, om du startar spelet som det är, kommer BGM du ställer in plötsligt att spela. Detta beror på att "Spela vid spelstart" är markerat. Om du vill spela det omedelbart i början av scenen är det inga problem som det är, men den här gången spelas det inte omedelbart, så lämna den här kontrollen avmarkerad.

Skapa sedan ett skript. MusicPlayer Lämna namnet som .

Skriptet ser ut så här:

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 kommer att ställas in senare från redigeraren. Denna AudioSource är den med ljudfilen du just infogade.

AudioSource, och metoder, så att du kan spela upp, pausa respektive PlayPauseStop stoppa.

Du kan koppla skriptet till ljudkällan, men i det här fallet kopplar du det till EventSystem. Kontrollera att skriptet fylls i med ljudkällan som du skapade tidigare.

Tilldela nu varje metod till click-händelsen för de tre knapparna.

Efter installationen, kör spelet och se om bakgrundsmusiken spelas.

Spela, pausa och stoppa är vanliga termer, så du behöver inte skriva dem i detalj, men jag tror att de fungerar enligt följande.

  • När du klickar på uppspelningsknappen spelas bakgrundsmusiken bara en gång och spelas upp till slutet.
  • Under uppspelning klickar du på pausknappen för att stoppa ljudet som spelas upp
  • När du klickar på uppspelningsknappen medan du pausar spelas ljudet upp från stoppat läge.
  • Klicka på stoppknappen under uppspelning för att stoppa uppspelningen av ljudet
  • Klicka på uppspelningsknappen när den är stoppad för att spela från början
  • Om du klickar på stoppknappen under paus släpps den pausade positionen och nästa gång du spelar kommer det att vara från början.
  • Om du klickar på uppspelningsknappen under uppspelning stoppas och spelas det ljud som spelas upp från början.

Loop-uppspelning

Den spelar bakgrundsmusik som standard och stannar automatiskt när den spelas till slutet. Om du vill slinga bakgrundsmusiken och fortsätta spela, markera "Loop" i Audio Source-komponenten och den fortsätter att spela upprepade gånger tills du trycker på stoppknappen.

Innehållet i uppspelningen av ljudeffekten är detsamma

Om du redan har sett tipsen på ljudeffektsidan kanske du har märkt att ljudeffekten och bakgrundsmusiken kan spelas med samma inställningar. Beroende på spelramen kan bearbetningen av ljudeffekter och bakgrundsmusik vara separat, men Unity låter dig spela båda med samma bearbetning.

Om fenomenet att bakgrundsmusik pausar när fönstret inaktiveras

Som standard, när andra fönster är aktiva och spelskärmen är inaktiverad, pausas själva spelet. Tillsammans med detta avbryts också uppspelningen av bakgrundsmusiken.

För att undvika detta kan du ställa in att den ska köras i bakgrunden i dina projektinställningar så att bakgrundsmusiken inte avbryts.