Spela upp, pausa eller stoppa en enskild ljudeffekt

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

Ljudeffekter lånas från följande webbplatser.

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.

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

Mer information finns i den officiella Unity-dokumentationen.

Om att spela upp ljudeffekter

Det finns flera sätt att spela ljudeffekter, men här vill vi gå igenom ett enkelt sätt att spela dem medan 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 ljudeffekten som visas i figuren.

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

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 ljudeffekten du ställer in plötsligt att spela. Detta beror på att "Spela vid spelstart" är markerat. Det är osannolikt att ljudeffekten kommer att spelas plötsligt, så lämna denna kontroll avmarkerad.

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

Skriptet ser ut så här:

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 kommer att ställas in senare från redigeraren. Denna AudioSource är den med ljudeffekten inställd tidigare.

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.

När du är klar kör du spelet och ser om ljudeffekterna spelas upp.

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 ljudeffekten bara upp 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.

Nackdelar med att använda AudioSource ensam

Det finns en lösning, men detta tips har följande nackdelar. Vi kommer att täcka dessa lösningar i ett annat tips.

Det går inte att spela upp två eller flera av samma ljud samtidigt

Du kan kontrollera detta genom att trycka på uppspelningsknappen flera gånger, men det tidigare ljudet försvinner när du spelar upp ett nytt ljud. På tal om nackdelar är det en nackdel, men tvärtom, om du spelar samma ljud ovanpå varandra kommer volymen att vara mycket hög, så det är en fördel i den meningen att det förhindrar det. Det tidigare ljudet kommer dock fortfarande att försvinna, så beroende på ljudtyp blir det onaturligt.

Du måste ha lika många AudioSources som det finns typer av ljud att spela upp

Eftersom endast ett ljudklipp kan ställas in i en AudioSource måste du ange en AudioSource eftersom du har så många ljud du vill. Du kan också bara förbereda en ljudkälla och ändra ljudklippet när du spelar upp ett annat ljud. Det är onaturligt eftersom det tidigare ljudet försvinner på grund av problemet att två eller flera av samma ljud som skrivits tidigare inte kan spelas samtidigt.