Afspil flere lyde på samme tid
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 flere samtidige lydafspilninger
I de tidligere tip brugte vi AudioSource til at afspille en lydfil, men da vi forsøgte at lave en enkelt lyd og flere lyde, forsvandt den forrige lyd. For eksempel, hvis du har to eksplosioner i et spil, er det unaturligt, at den første lydeffekt forsvinder, når den anden eksplosion genererer en lydeffekt. Dette afsnit beskriver, hvordan du afspiller den samme lyd flere gange oven på hinanden.
Trin til afspilning af lyd på samme tid
Her vil jeg forklare fra det punkt, hvor jeg oprettede et nyt projekt, men hvis du kender Unity til en vis grad, kan du kun skære de relevante dele ud og huske dem.
Denne gang afspilles lydeffekten, hver gang du klikker på knappen. Opret din brugergrænseflade som vist. Detaljerne er passende og gode.
Tilføj en lydfil ved at slippe den i dit projekt.
Føj lydkilde til hierarkiet. I dette tilfælde indstiller du ikke lydklippet direkte til AudioSource.
Tilføj et script. ButtonEvent
Lad navnet være .
Scriptet ser sådan ud:
using UnityEngine;
public class ButtonEvent : MonoBehaviour
{
[SerializeField] private AudioSource AudioSource;
<summary>音声データ。</summary>
[SerializeField] private AudioClip AudioClip;
public void OnClickPlay()
{
// オーディオを再生します
AudioSource.PlayOneShot(AudioClip);
}
}
AudioSource
Tænk på det som en klasse til styring af lyd, ligesom de foregående tip.
AudioClip
er en klasse, der gemmer lyddata. Du kan indstille lydfiler her.
AudioSource.PlayOneShot
Hvis du sender det som et argument til metoden, kan du afspille AudioClip
lyddataene.
Lyden, der afspilles ved denne metode, styres uafhængigt.
Hvis du kalder denne metode igen, afspilles den som en ny stemme separat fra den forrige.
Derfor er det muligt at afspille lyden igen hver gang denne metode kaldes.
Vedhæft scriptet til EventSystem.
For "Audio Source" skal du indstille "Audio Source" tilføjet til hierarkiet.
For "Lydklip" skal du indstille en lydfil fra projektet.
Til sidst skal du indstille metoden til knappens klikhændelse.
Kør spillet og klik på knappen. Jeg tror, lydeffekterne vil spille. Hvis du klikker på knappen igen under afspilning, afspilles den nye lyd, uden at den forrige lyd forsvinder.
AudioClip
På denne måde er det nu muligt at afspille den samme lyd oven på hinanden ved at afspille lyden via .
Dette gør det muligt for spillet at spille uden at den forrige lyd forsvinder unaturligt.
Ulemper ved afspilning med AudioClip
AudioClip
Jeg var i stand til at afspille lyden oven på hinanden ved at afspille den ved hjælp af , men tværtimod opstår følgende ulemper.
Lyden bliver støjende
Som du kan se, hvis du klikker på knappen kontinuerligt, overlapper lydene, og den harmoniske, der afspilles, bliver højere og højere. Hvis du f.eks. vil afspille en lydeffekt, når et angreb rammer i et spil, Hvis der forekommer flere hits på samme tid uden at tage nogen forholdsregler, kan de afspilles med en unormal lydstyrke.