Unity 6.3
0 онлайн 97 гостей 3 в системе
Вход
Animation Шаг 42 из 74

Animation Параметры

Параметры анимации — это переменные, определённые в Animator Controller, к которым можно обращаться и которым можно присваивать значения из скриптов. Так скрипт может управлять потоком машины состояний или влиять на него.

Animation Параметры в окне Animator.
Animation Параметры в окне Animator.

Например, значение параметра может быть обновлено с помощью кривая анимации и затем доступны из скрипта, так что, скажем, высота звукового эффекта может быть изменена, как если бы это была часть анимации. Аналогичным образом, скрипт может установить значения параметров, которые будут взяты Mecanim. Например, скрипт может установить параметр для управления Бленд-дерево.

Значения параметров по умолчанию могут быть установлены в разделе Параметры окна Animator, выбираемом в правом верхнем углу окна Animator. Они могут быть четырех основных типов:

  • Цифры — целое число
  • Поплавок — число с дробной частью
  • Булева функция — истинное или ложное значение (представляется флажком)
  • Триггер — булевый параметр, который сбросит контроллер, когда он будет потреблен переходом (представлен круглой кнопкой)

Значения параметрам можно присваивать из скрипта функциями класса Animator: SetFloat, SetInteger, SetBool, SetTrigger, и ResetTrigger.

Вот пример скрипта, изменяющего параметры на основе ввода пользователя и обнаружения столкновений:

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");
        }
    }
}