Lo básico de los Estados de Maquina
Transiciones de State Machine (Estados de Maquina)

Parámetros de animación

Los parámetros de animación son variables que son definidas dentro de un Animator Controller el cual puede ser accedido y asignar valores desde scripts. Esto es cómo un script puede controlar o afectar el flujo del estado de maquina.

Por ejemplo, el valor de un parámetro puede ser actualizado por un animation curve y luego accedido desde un script para que, digamos, el tono del efecto de sonido pueda variar como si fuera una pieza de animación. Del mismo modo, un script puede configurar valores de parámetros para ser recogidos por Mecanim. Por ejemplo, un script puede configurar un parámetro para controlar un Blend Tree.

Los valores por defecto del parámetro pueden ser configurados utilizando la sección de Parámetros de la ventana del Animator, seleccionable en la izquierda superior derecha de la ventana del Animator. Estos pueden ser cuatro tipos básicos:

  • Int - un número entero
  • Float - un número con una fracción.
  • Bool - un valor de True o False (representado por una casilla de verificación)
  • Trigger - un parámetro booleano que se reinicia desde el controlador cuando se efectúa una transición. (representado por un botón de un círculos)

Los parametros pueden ser valores asignados por un script usando funciones en la clase Animator: SetFloat, SetInt, SetBool, SetTrigger y ResetTrigger.

Aquí un ejemplo de un script que modifica parametros basados en el input del usuario y la detección de colisiones.

using UnityEngine;
using System.Collections;

public class SimplePlayer : MonoBehaviour {
    
    Animator animator;
    
    // Use this for initialization
    void Start () {
        animator = GetComponent<Animator>();
    }
    
    // Update is called once per frame
    void Update () {
        float h = Input.GetAxis("Horizontal");
        float v = Input.GetAxis("Vertical");
        bool fire = Input.GetButtonDown("Fire1");

        animator.SetFloat("Forward",v);
        animator.SetFloat("Strafe",h);
        animator.SetBool("Fire", fire);
    }

    void OnCollisionEnter(Collision col) {
        if (col.gameObject.CompareTag("Enemy"))
        {
            animator.SetTrigger("Die");
        }
    }
}


Lo básico de los Estados de Maquina
Transiciones de State Machine (Estados de Maquina)