Reproducir varios sonidos al mismo tiempo
Entorno de verificación
- Windows
-
- Ventanas 11
- Unity Editor
-
- 2021.3.3F1
- Paquete del sistema de entrada
-
- 1.3.0
Requisitos previos para esta sugerencia
Los siguientes ajustes se han realizado de antemano como premisa para la descripción de este consejo.
Sobre el material incluido con la muestra
Los efectos de sonido se toman prestados de los siguientes sitios.
Acerca de los archivos de audio
Los siguientes formatos de archivo de audio se pueden reproducir con las funciones estándar de Unity: Por favor, prepárelo con anticipación porque se utilizará en estos consejos.
- WAV (.wav)
- OggVorbis (.ogg)
- MPEG capa 3 (.mp3)
Para obtener más información, consulta la documentación oficial de Unity.
Acerca de la reproducción simultánea múltiple de audio
En los consejos anteriores, usamos AudioSource para reproducir un archivo de audio, pero cuando intentamos hacer un solo sonido y varios sonidos, el sonido anterior desapareció. Por ejemplo, si tienes dos explosiones en un juego, no es natural que el primer efecto de sonido desaparezca cuando la segunda explosión genera un efecto de sonido. En esta sección se describe cómo reproducir el mismo sonido varias veces una encima de la otra.
Pasos para reproducir audio al mismo tiempo
Aquí, explicaré desde el punto en que creé un nuevo proyecto, pero si conoces Unity hasta cierto punto, puedes cortar solo las partes relevantes y memorizarlas.
Esta vez, el efecto de sonido se reproducirá cada vez que haga clic en el botón. Cree la interfaz de usuario como se muestra. Los detalles son apropiados y buenos.
Agregue un archivo de sonido soltándolo en su proyecto.
Agregue Fuente de audio a la jerarquía. En este caso, no establecerá el clip de audio directamente en AudioSource.
Agregar un script. ButtonEvent
Deje el nombre como .
El script tiene este aspecto:
using UnityEngine;
public class ButtonEvent : MonoBehaviour
{
[SerializeField] private AudioSource AudioSource;
<summary>音声データ。</summary>
[SerializeField] private AudioClip AudioClip;
public void OnClickPlay()
{
// オーディオを再生します
AudioSource.PlayOneShot(AudioClip);
}
}
AudioSource
Piense en ello como una clase para controlar el audio, al igual que los consejos anteriores.
AudioClip
es una clase que almacena datos de audio. Puede configurar archivos de audio aquí.
AudioSource.PlayOneShot
Si lo pasa como argumento al método, puede reproducir los datos de AudioClip
audio.
El audio reproducido por este método se controla de forma independiente.
Si vuelve a llamar a este método, se reproducirá como una nueva voz por separado de la anterior.
Por lo tanto, es posible reproducir el sonido nuevamente cada vez que se llama a este método.
Adjunte el script a EventSystem.
Para "Fuente de audio", establezca la "Fuente de audio" agregada a la jerarquía.
Para "Clip de audio", establezca un archivo de audio del proyecto.
Finalmente, establezca el método en el evento click del botón.
Ejecuta el juego y haz clic en el botón. Creo que los efectos de sonido se reproducirán. Además, si vuelve a hacer clic en el botón durante la reproducción, el nuevo sonido se reproducirá sin que el sonido anterior desaparezca.
AudioClip
De esta manera, ahora es posible reproducir el mismo sonido uno encima del otro reproduciendo el audio a través de .
Esto permite que el juego se juegue sin que el sonido anterior desaparezca de forma antinatural.
Desventajas al jugar con AudioClip
AudioClip
Pude reproducir el audio uno encima del otro reproduciéndolo usando , pero por el contrario, ocurren las siguientes desventajas.
El sonido se vuelve ruidoso
Como puede ver si hace clic en el botón continuamente, los sonidos se superponen y el armónico que se reproduce se vuelve cada vez más fuerte. Por ejemplo, si quieres reproducir un efecto de sonido cuando un ataque golpea en un juego, Si se producen varios golpes al mismo tiempo sin tomar ninguna medida, se pueden reproducir a un volumen anormal.