Spela upp, pausa eller stoppa en enskild ljudeffekt
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 Play
Pause
Stop
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.