certmundo.
es‑mx

6 min de lectura

¿Cómo agregar sonido y efectos visuales a tu videojuego?

Agregar sonido y efectos visuales transforma un juego aburrido en una experiencia que engancha al jugador desde el primer segundo.

¿Alguna vez jugaste un videojuego sin sonido? Es como ver una película en silencio. Algo falta. El audio y el movimiento no son decoración: son parte del lenguaje del juego.

La historia de Rodrigo y su plataformero silencioso

Rodrigo tiene 19 años y vive en Monterrey. Pasó tres semanas construyendo su primer plataformero en Unity. El personaje saltaba, los enemigos se movían, el puntaje aparecía en pantalla.

Pero cuando se lo mostró a sus amigos, todos dijeron lo mismo: "Se siente vacío."

No había música. No había sonido al saltar. No había efecto visual al recoger una moneda. Rodrigo aprendió algo importante ese día: la técnica sin emoción no conecta.

En esta lección vas a aprender lo que Rodrigo aprendió: cómo agregar audio y efectos visuales sencillos en Unity.

¿Qué es un AudioSource en Unity?

El componente AudioSource es el altavoz de tu juego. Lo colocas en un GameObject y desde ahí reproduce sonidos.

Para usarlo, sigue estos pasos:

  1. Selecciona el GameObject donde quieres el sonido (por ejemplo, tu personaje).
  2. En el Inspector, haz clic en Add Component.
  3. Busca y agrega Audio Source.

Después necesitas un archivo de audio. Unity acepta formatos .mp3, .wav y .ogg. Arrastra tu archivo al campo AudioClip del componente.

Música de fondo

Para música de fondo, crea un GameObject vacío. Llámalo "Musica". Agrégale un AudioSource. Activa las opciones Loop y Play On Awake. Listo: la música empieza sola cuando carga la escena y nunca para.

Efectos de sonido desde código

Para sonidos cortos, como un salto o una explosión, usa código. Así lo hace Rodrigo en su script de jugador:

using UnityEngine;

public class Jugador : MonoBehaviour
{
    public AudioClip sonidoSalto;
    public AudioClip sonidoMoneda;
    private AudioSource audioSource;

    void Start()
    {
        audioSource = GetComponent<AudioSource>();
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            audioSource.PlayOneShot(sonidoSalto);
        }
    }

    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Moneda"))
        {
            audioSource.PlayOneShot(sonidoMoneda);
            Destroy(other.gameObject);
        }
    }
}

PlayOneShot es ideal para efectos cortos. No interrumpe otros sonidos que ya están reproduciéndose.

En el Inspector, arrastra tus archivos de audio a los campos sonidoSalto y sonidoMoneda. Unity los conecta automáticamente.

La historia de Ana y las animaciones de su enemigo

Ana estudia diseño digital en la Ciudad de México. Creó un enemigo para su juego de acción. El enemigo se movía, pero siempre con la misma imagen estática. Parecía que se deslizaba por el suelo, no que caminaba.

Ana descubrió el Animator de Unity. Con él, conectó dos sprites: uno con el pie izquierdo adelante y otro con el pie derecho. El resultado fue una animación de caminata sencilla pero efectiva.

No necesitas ser animador profesional. Necesitas dos o tres imágenes y saber conectarlas.

Animaciones sencillas con el Animator

El sistema de animación de Unity usa dos herramientas juntas: Animation (donde creas los fotogramas) y Animator (donde controlas cuándo se reproduce cada animación).

Paso 1: Crear una animación

  1. Selecciona el sprite de tu personaje en la escena.
  2. Ve al menú Window → Animation → Animation.
  3. Haz clic en Create y guarda el archivo como Caminar.anim.
  4. En la línea de tiempo, agrega fotogramas arrastrando tus sprites desde el proyecto.

Unity reproduce esos fotogramas en secuencia. Así nace la animación.

Paso 2: Controlar animaciones desde código

Supón que tienes dos animaciones: Idle y Correr. Quieres que el personaje corra cuando se mueve.

using UnityEngine;

public class AnimacionJugador : MonoBehaviour
{
    private Animator animator;

    void Start()
    {
        animator = GetComponent<Animator>();
    }

    void Update()
    {
        float movimiento = Input.GetAxis("Horizontal");

        if (movimiento != 0)
        {
            animator.SetBool("corriendo", true);
        }
        else
        {
            animator.SetBool("corriendo", false);
        }
    }
}

En el Animator, conectas los estados con flechas y usas el parámetro corriendo como condición. Cuando es true, pasa a la animación de correr. Cuando es false, regresa a Idle.

Efectos visuales sencillos: partículas

Unity trae un sistema de partículas que genera efectos como chispas, humo o destellos. No necesitas saber dibujar.

Crear un efecto de explosión

  1. En la jerarquía, haz clic derecho y elige Effects → Particle System.
  2. En el Inspector verás docenas de opciones. No te abrumes.
  3. Ajusta solo tres cosas para empezar:
    • Start Lifetime: cuánto dura cada partícula (prueba con 0.5).
    • Start Speed: qué tan rápido salen (prueba con 5).
    • Start Color: el color del efecto (naranja o amarillo para fuego).

Para que el efecto aparezca solo cuando algo explota, desactívalo por defecto y actívalo desde código:

using UnityEngine;

public class Explosion : MonoBehaviour
{
    public ParticleSystem efectoExplosion;

    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Bala"))
        {
            efectoExplosion.Play();
            Destroy(gameObject, 0.5f);
        }
    }
}

efectoExplosion.Play() lanza el efecto. Destroy(gameObject, 0.5f) destruye el enemigo medio segundo después, cuando el efecto termina.

Rodrigo muestra su juego otra vez

Rodrigo pasó un fin de semana agregando lo que aprendiste aquí. Música de fondo tranquila para los niveles fáciles. Un sonido de "\¡ding!" al recoger monedas. Una pequeña explosión de partículas cuando caía al vacío.

Sus amigos volvieron a probarlo. Esta vez nadie dijo que se sentía vacío. Uno de ellos se quedó jugando 20 minutos seguidos.

El juego era técnicamente el mismo. Pero la experiencia era completamente diferente.

Errores comunes que debes evitar

Error 1: Olvidar asignar el AudioClip en el Inspector. Declara la variable en el script pero no arrastras el archivo en Unity. El juego corre pero no suena nada. Revisa siempre el Inspector después de declarar variables públicas.

Error 2: Usar audioSource.Play() para efectos cortos. Play() detiene cualquier sonido anterior del mismo AudioSource. Si el jugador salta muy rápido, el sonido se corta. Usa siempre PlayOneShot() para efectos que se repiten rápido.

Error 3: No marcar "Loop" en la música de fondo. La música dura 2 minutos, el nivel dura 5. Sin Loop, el juego queda en silencio a la mitad. Activa siempre Loop para la música.

Error 4: Dejar el Particle System activo por defecto. Si no lo desactivas, el efecto se reproduce desde que carga la escena. En el Inspector, desmarca Play On Awake para controlarlo solo desde código.

Error 5: Animar sin organizar los estados en el Animator. Si agregas muchas animaciones sin orden, el Animator se convierte en un caos de flechas. Nombra bien cada estado: Idle, Correr, Saltar, Morir. Eso te ahorra horas de confusión después.

El audio y la animación son comunicación

Piensa en Bimbo por un momento. Su música en los camiones de reparto no es aleatoria. Está elegida para que la reconozcas desde lejos y te genere una emoción específica. Los videojuegos funcionan igual.

Cada sonido le dice algo al jugador. Un sonido agudo al recoger monedas dice "\¡bien hecho!". Una música tensa dice "\¡cuidado!". Una explosión de partículas dice "\¡lograste algo grande!".

Tú, como creador, tienes esa herramienta en tus manos ahora.

Lo que aprendiste hoy

Empezaste esta lección con un juego técnicamente correcto pero emocionalmente vacío. Ahora sabes cómo llenarlo. El AudioSource reproduce tus sonidos. El Animator da vida a tus sprites. Las partículas crean momentos visuales que el jugador recuerda.

En la siguiente lección cierras el ciclo: aprenderás a empaquetar y exportar tu juego para que otros puedan jugarlo.

Puntos clave

  • Agrega un componente **AudioSource** a tu GameObject para reproducir sonidos. Usa `PlayOneShot()` para efectos cortos y el modo **Loop** para música de fondo.
  • El sistema **Animation + Animator** de Unity te permite crear y controlar animaciones sencillas con pocos sprites. Usa `SetBool()` desde tu script para cambiar entre estados.
  • El **Particle System** genera efectos visuales como explosiones o chispas sin necesidad de dibujar. Desactiva **Play On Awake** y contrólalo con `efectoExplosion.Play()` desde código.
  • Nunca uses `audioSource.Play()` para efectos que se repiten rápido. Se interrumpen entre sí. `PlayOneShot()` los reproduce en capas sin conflictos.
  • El audio y las animaciones no son extras opcionales: son el lenguaje emocional del juego. Sin ellos, el jugador no siente nada aunque la mecánica funcione perfecto.

Comparte esta lección:

¿Cómo agregar sonido y efectos visuales a tu videojuego? | Desarrollo de Videojuegos Básico | Certmundo