Afspil, pause, stop og loop baggrundsmusik

Side opdateret :
Dato for oprettelse af side :

Miljø til bekræftelse

Windows
  • Windows 11
Enhedslistens redaktør
  • 2021.3.3f1
Input System Pakke
  • 1.3.0

Forudsætninger for dette tip

Følgende indstillinger er foretaget på forhånd som en forudsætning for beskrivelsen af dette tip.

Om det materiale, der følger med prøven

BGM lånes fra følgende side.

Om lydfiler

Følgende lydfilformater kan afspilles med Unitys standardfunktioner: Forbered det på forhånd, fordi det vil blive brugt i disse tip.

  • OggVorbis (.ogg)
  • MPEG-lag 3 (.mp3)

Du kan finde flere oplysninger i den officielle Unity-dokumentation.

Om BGM-afspilning

Der er flere måder at afspille baggrundsmusik på, men her vil vi forklare, hvordan man spiller det på en enkel måde, mens du bruger standardfunktionerne.

Indholdet er at arrangere en knap og afspille, pause og stoppe ved at klikke på knappen. I et rigtigt spil kan du implementere den samme proces bortset fra knapper.

Placer først en knap for at afspille BGM som vist på figuren.

Tilføj den forberedte lydfil ved at slippe den i dit projekt.

Tilføj derefter "Audio Source" til hierarkiet.

Når du vælger den lydkilde, du har oprettet, har komponenten Lydkilde et lydklip, hvor du slipper en lydfil fra projektet for at konfigurere den.

Forresten, hvis du starter spillet som det er, vil den BGM, du indstiller, pludselig spille. Dette skyldes, at "Spil ved spilstart" er markeret. Hvis du vil afspille det med det samme i starten af scenen, er der ikke noget problem, som det er, men denne gang afspilles det ikke med det samme, så lad denne kontrol være umarkeret.

Opret derefter et script. MusicPlayer Lad navnet være .

Scriptet ser sådan ud:

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 vil blive indstillet senere fra editoren. Denne AudioSource er den med den lydfil, du lige har indsat.

AudioSource, og metoder, så du kan afspille, sætte på pause og PlayPauseStop stoppe henholdsvis.

Du kan vedhæfte scriptet til lydkilden, men i dette tilfælde skal du vedhæfte det til EventSystem. Sørg for, at dit script er udfyldt med den lydkilde, du oprettede tidligere.

Tildel nu hver metode til klikhændelsen for de tre knapper.

Efter opsætningen skal du køre spillet og se, om baggrundsmusikken afspilles.

Afspil, pause og stop er almindeligt anvendte udtryk, så du behøver ikke at skrive dem i detaljer, men jeg tror, de fungerer som følger.

  • Når du klikker på afspilningsknappen, afspilles baggrundsmusikken kun én gang og afspilles til slutningen.
  • Under afspilning skal du klikke på pauseknappen for at stoppe afspilningen af lyden
  • Når du klikker på afspilningsknappen, mens den er sat på pause, afspilles lyden fra den stoppede position.
  • Klik på stopknappen under afspilning for at stoppe afspilningen af lyden
  • Klik på afspilningsknappen, mens du stopper, for at afspille fra begyndelsen
  • Hvis du klikker på stopknappen under pausen, frigives den pausede position, og næste gang du spiller, vil det være fra begyndelsen.
  • Hvis du klikker på afspilningsknappen under afspilning, stoppes og afspilles den aktuelt afspillede lyd fra begyndelsen.

Afspilning af sløjfe

Den afspiller baggrundsmusik som standard og stopper automatisk, når den afspilles til slutningen. Hvis du vil sløjfe baggrundsmusikken og fortsætte med at spille, skal du markere "Loop" i lydkildekomponenten, og den vil fortsætte med at afspille gentagne gange, indtil du trykker på stopknappen.

Indholdet af afspilningen af lydeffekten er det samme

Hvis du allerede har set tipene på lydeffektsiden, har du måske bemærket, at lydeffekten og baggrundsmusikken kan afspilles med de samme indstillinger. Afhængigt af spilrammen kan behandlingen af lydeffekter og baggrundsmusik være adskilt, men Unity giver dig mulighed for at spille begge med samme behandling.

Om fænomenet, at baggrundsmusik pauser, når vinduet deaktiveres

Når andre vinduer er aktive, og spilskærmen er deaktiveret, er selve spillet som standard sat på pause. Sammen med dette er afspilningen af baggrundsmusikken også suspenderet.

For at undgå dette kan du indstille den til at køre i baggrunden i dine projektindstillinger, så baggrundsmusikken ikke afbrydes.