Reproducir varios sonidos al mismo tiempo

Actualización de la página :
Fecha de creación de la página :

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.