Version: 2018.4
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)
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961