Animación con Mecanim: estados y transiciones

Controla animaciones con Animator Controller y parámetros para conectar movimiento, saltos y acciones del personaje.

Mecanim organiza animaciones como una máquina de estados: Idle, Walk, Jump, Attack, etc.

Cada transición depende de parámetros (`bool`, `float`, `trigger`) que se actualizan desde código.

Separar lógica de input y lógica de animación mejora mantenimiento y evita scripts gigantes.

Una transición bien configurada hace que el feedback visual refleje exactamente el estado del gameplay.

  • Piensa animación como sistema de estados, no como clips sueltos.
  • En el Animator Controller defines estados (Idle, Walk, Jump) y condiciones para cambiar entre ellos.
  • Esto permite que la animación responda a variables de gameplay en vez de depender de acciones manuales aisladas.
  • Empieza con pocos estados y transiciones claras; luego escala cuando el personaje gane más acciones.
  • Estado = postura o acción activa.

Mecanim como máquina de estados

Piensa animación como sistema de estados, no como clips sueltos.

En el Animator Controller defines estados (Idle, Walk, Jump) y condiciones para cambiar entre ellos.

Esto permite que la animación responda a variables de gameplay en vez de depender de acciones manuales aisladas.

Empieza con pocos estados y transiciones claras; luego escala cuando el personaje gane más acciones.

  • Estado = postura o acción activa.
  • Transición = regla para saltar entre estados.
  • Parámetros = puente entre código y animación.

Controlar Animator desde script

Los parámetros sincronizan lo que ocurre en código con lo que ve el jugador.

Con `SetBool` activas estados persistentes (por ejemplo caminar), con `SetTrigger` acciones puntuales (como ataque).

Evita actualizar parámetros sin criterio en cada frame: calcula intención primero y luego actualiza Animator.

Nombra parámetros en inglés o español, pero sé consistente entre Animator y script para evitar errores silenciosos.

Buenas prácticas para no romper el flujo

Una animación estable es parte del diseño técnico del juego.

Cachea referencias al Animator y valida nulls para evitar excepciones en escena.

Mantén transiciones con condiciones mínimas y evita múltiples rutas ambiguas entre los mismos estados.

Prueba en runtime casos límite: cambio rápido de dirección, spam de salto y pausas del juego.

Unity
13

Animación con Mecanim: estados y transiciones

Controla animaciones con Animator Controller y parámetros para conectar movimiento, saltos y acciones del personaje.

Código del tema: GameObject + Component = comportamiento

📘 Teoría

Mecanim como máquina de estados

Piensa animación como sistema de estados, no como clips sueltos.

En el Animator Controller defines estados (Idle, Walk, Jump) y condiciones para cambiar entre ellos.

Esto permite que la animación responda a variables de gameplay en vez de depender de acciones manuales aisladas.

Empieza con pocos estados y transiciones claras; luego escala cuando el personaje gane más acciones.

  • Estado = postura o acción activa.
  • Transición = regla para saltar entre estados.
  • Parámetros = puente entre código y animación.

Controlar Animator desde script

Los parámetros sincronizan lo que ocurre en código con lo que ve el jugador.

1

Con `SetBool` activas estados persistentes (por ejemplo caminar), con `SetTrigger` acciones puntuales (como ataque).

2

Evita actualizar parámetros sin criterio en cada frame: calcula intención primero y luego actualiza Animator.

3

Nombra parámetros en inglés o español, pero sé consistente entre Animator y script para evitar errores silenciosos.

Actualizar parámetros de animación
using UnityEngine;

public class PlayerAnim : MonoBehaviour
{
    public Animator animator;

    void Update()
    {
        float moveX = Input.GetAxisRaw("Horizontal");
        bool caminando = Mathf.Abs(moveX) > 0.01f;

        animator.SetBool("estaCaminando", caminando);

        if (Input.GetKeyDown(KeyCode.Space))
        {
            animator.SetTrigger("saltar");
        }
    }
}

Buenas prácticas para no romper el flujo

Una animación estable es parte del diseño técnico del juego.

1

Cachea referencias al Animator y valida nulls para evitar excepciones en escena.

2

Mantén transiciones con condiciones mínimas y evita múltiples rutas ambiguas entre los mismos estados.

3

Prueba en runtime casos límite: cambio rápido de dirección, spam de salto y pausas del juego.

🧪 Aprende probando

Ejemplo Ejemplo guiado Conecta input horizontal con el parámetro `estaCaminando` para alternar entre Idle y Walk.

🏁 Retos

Reto Reto práctico Implementa una lógica que use `SetBool` para caminar y `SetTrigger` para salto.

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .