Cómo reproducir un sonido en Unity

Introducción

Vamos a ver cómo reproducir sonidos en Unity, tanto de manera automática al entrar en el modo juego, como reproducir un sonido usando un Script C#. Para lograr esto se necesita que haya un componente AudioListener en la escena (usualmente asignado a la cámara principal) y el componente AudioSource con el clip del audio que queremos reproducir.

Procedimiento resumido para reproducir un sonido en Unity al iniciar el juego

1. Crear un GameObject y en el inspector asignarle el componente AudioSource (Botón Add Component).

2. Configurar el componente AudioSource con la opción “Play On Awake” activada y el resto de los parámetros a gusto (más adelante vemos las distintas opciones).

3. Al entrar en el modo juego, el sonido comenzará a reproducirse de manera automática con los parámetros configurados.

Procedimiento resumido para reproducir un sonido en Unity desde un Script

1. Crear un GameObject y en el inspector asignarle el componente AudioSource (Botón Add Component). Desactivar la opción “Play on Awake” y configurar los demás parámetros a gusto.

2. Crear un Script para controlar el inicio del sonido, el volumen, el final, entre otras acciones. Asignar este Script al mismo GameObject que tiene el componente AudioSource.

3. En el script definir una referencia para el objeto AudioSource y encontrarla en el método Start usando GetComponent<>().

4. Definir una función pública para reproducir el sonido desde cualquier otro Script, dentro de esta función ejecutar la instrucción: “audioSource.Play()”.

5. Detectar el evento en el cual el sonido debe reproducirse y en ejecutar la función Reproducir definida en el script del audio.

Configuración del componente AudioSource

El componente AudioSource tiene muchos parámetros ajustables para conseguir distintos resultados con nuestros sonidos. En la siguiente imagen vemos qué aspecto tiene el componente AudioSource en el inspector en Unity.

componente audiosource para reproducir sonidos en Unity
Fig. 1: Componente AudioSource genérico en Unity.

Para empezar podemos asignar manualmente el sonido que queremos reproducir arrastrándolo al campo AudioClip. Esto también lo podemos hacer desde un script con la instrucción “audioSource.clip=unClip;”, siendo “audioSource” la referencia del componente AudioSource del inspector y “unClip” es un campo que contiene la referencia de algún sonido.

Luego podemos mutear el sonido y ajustarle el volumen. Habilitar la opción “Play On Awake” para que el sonido se reproduzca ni bien el GameObject entre en estado habilitado. La opción Loop hace que el sonido se vuelva a reproducir cuando termina.

El Spatial Blend es un parámetro que nos permite ajustar si se trata de un sonido de fondo o un sonido que depende de la distancia que hay entre el AudioSource y el AudioListener, si ponemos el indicador en 3D, obtendremos un sonido stereo cuyo volumen y distribución en los audífonos dependerá de la posición en la que está la fuente. Dentro de 3D Sound Settings podemos ajustar parámetros relacionados a esto.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *