Reprodueix diversos sons alhora
Entorn de verificació
- Windows
-
- Finestres 11
- Editor d'unitat
-
- 2021.3.3f1
- Paquet del sistema d'entrada
-
- 1.3.0
Requisits previs per a aquest consell
La configuració següent s'ha fet amb antelació com a premissa per a la descripció d'aquest consell.
Sobre el material inclòs en la mostra
Els efectes de so es prenen prestats dels llocs següents.
Quant als fitxers d'àudio
Els següents formats de fitxer d'àudio es poden reproduir amb les característiques estàndard d'Unity: Si us plau, prepareu-lo amb antelació perquè s'utilitzarà en aquests consells.
- WAV (.wav)
- OggVorbis (.ogg)
- MPEG capa 3 (.mp3)
Per obtenir més informació, consulteu la documentació oficial de la Unitat.
Sobre la reproducció simultània d'àudio múltiple
En els consells anteriors, vam utilitzar AudioSource per reproduir un fitxer d'àudio, però quan vam intentar fer un sol so i diversos sons, el so anterior va desaparèixer. Per exemple, si teniu dues explosions en un joc, no és natural que el primer efecte sonor desaparegui quan la segona explosió genera un efecte sonor. Aquesta secció descriu com reproduir el mateix so diverses vegades l'un sobre l'altre.
Passos per reproduir àudio al mateix temps
Aquí, explicaré des del punt en què vaig crear un nou projecte, però si coneixeu Unity fins a cert punt, podeu retallar només les parts rellevants i memoritzar-les.
Aquesta vegada, l'efecte de so es reproduirà cada vegada que feu clic al botó. Creeu la vostra interfície d'usuari tal com es mostra. Els detalls són adequats i bons.
Afegiu un fitxer de so deixant-lo anar al vostre projecte.
Afegiu una font d'àudio a la jerarquia. En aquest cas, no configurareu el clip d'àudio directament a la font d'àudio.
Afegiu un script. ButtonEvent
Deixeu el nom com .
El guió té aquest aspecte:
using UnityEngine;
public class ButtonEvent : MonoBehaviour
{
[SerializeField] private AudioSource AudioSource;
<summary>音声データ。</summary>
[SerializeField] private AudioClip AudioClip;
public void OnClickPlay()
{
// オーディオを再生します
AudioSource.PlayOneShot(AudioClip);
}
}
AudioSource
Penseu en això com una classe per controlar l'àudio, igual que els consells anteriors.
AudioClip
és una classe que emmagatzema dades d'àudio. Podeu configurar fitxers d'àudio aquí.
AudioSource.PlayOneShot
Si ho passeu com a argument al mètode, podeu reproduir les dades d'àudio AudioClip
.
L'àudio reproduït per aquest mètode es controla de manera independent.
Si torneu a trucar a aquest mètode, es reproduirà com una veu nova per separat de l'anterior.
Per tant, és possible tornar a reproduir el so cada vegada que es crida a aquest mètode.
Adjunteu l'script a EventSystem.
Per a "Font d'àudio", definiu la "Font d'àudio" afegida a la jerarquia.
A "Clip d'àudio", defineix un arxiu d'àudio del projecte.
Finalment, configureu el mètode a l'esdeveniment de clic del botó.
Executeu el joc i feu clic al botó. Crec que sonaran els efectes de so. A més, si torneu a fer clic al botó durant la reproducció, el nou so es reproduirà sense que desaparegui el so anterior.
AudioClip
D'aquesta manera, ara és possible reproduir el mateix so l'un sobre l'altre reproduint l'àudio mitjançant .
Això permet que el joc es jugui sense que el so anterior desaparegui de manera antinatural.
Desavantatges en jugar amb AudioClip
AudioClip
Vaig poder reproduir l'àudio l'un sobre l'altre reproduint-lo mitjançant , però, per contra, es produeixen els següents desavantatges.
El so es fa sorollós
Com podeu veure si feu clic al botó contínuament, els sons se superposen i l'harmònic que es reprodueix es fa cada vegada més fort. Per exemple, si voleu reproduir un efecte de so quan un atac colpeja en una partida, Si es produeixen diversos cops al mateix temps sense prendre cap mesura, es poden reproduir a un volum anormal.