Afspil, sæt på pause eller stop en enkelt lydeffekt

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

Lydeffekter lånes fra følgende websteder.

Om lydfiler

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

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

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

Om afspilning af lydeffekter

Der er flere måder at afspille lydeffekter på, men her vil vi lede dig gennem en enkel måde at afspille dem på, 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 lydeffekten 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 lydeffekt, du indstiller, pludselig spille. Dette skyldes, at "Spil ved spilstart" er markeret. Det er usandsynligt, at lydeffekten pludselig afspilles, så lad denne kontrol være umarkeret.

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

Scriptet ser sådan ud:

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 vil blive indstillet senere fra editoren. Denne lydkilde er den med lydeffekten indstillet tidligere.

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.

Når du er færdig, skal du køre spillet og se, om lydeffekterne 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 lydeffekten 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.

Ulemper ved at bruge AudioSource alene

Der er en løsning, men dette tip har følgende ulemper. Vi dækker disse løsninger i et andet tip.

Kan ikke afspille to eller flere af den samme lyd på samme tid

Du kan kontrollere dette ved at trykke på afspilningsknappen flere gange, men den forrige lyd forsvinder, når du afspiller en ny lyd. Når vi taler om ulemper, er det en ulempe, men tværtimod, hvis du spiller den samme lyd oven på hinanden, vil lydstyrken være meget høj, så det er en fordel i den forstand, at det forhindrer det. Den forrige lyd forsvinder dog stadig, så afhængigt af lydtypen vil den være unaturlig.

Du skal have lige så mange lydkilder, som der er typer lyde, der skal afspilles

Da der kun kan indstilles ét lydklip i en lydkilde, skal du angive en lydkilde, da du har så mange lyde, som du vil. Du kan også kun forberede én lydkilde og ændre lydklippet, når du afspiller en anden lyd. Det er unaturligt, fordi den forrige lyd forsvinder på grund af det problem, at to eller flere af den samme lyd skrevet før ikke kan afspilles på samme tid.