Описание
StateMachineBehaviour — это компонент, который можно добавить в состояние конечного автомата. Это базовый класс, от которого наследуется каждый скрипт состояния.
По умолчанию Animator создает новый экземпляр каждого поведения, определенного в контроллере. Атрибут класса SharedBetweenAnimatorsAttribute управляет созданием экземпляров поведения.
StateMachineBehaviour имеет несколько предопределенных сообщений:
OnStateEnter, OnStateExit, OnStateIK, OnStateMove, OnStateUpdate.
using UnityEngine;
public class AttackBehaviour : StateMachineBehaviour
{
public GameObject particle;
public float radius;
public float power;
protected GameObject clone;
override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
clone = Instantiate(particle, animator.rootPosition, Quaternion.identity) as GameObject;
Rigidbody rb = clone.GetComponent<Rigidbody>();
rb.AddExplosionForce(power, animator.rootPosition, radius, 3.0f);
}
override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
Destroy(clone);
}
override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
Debug.Log("On Attack Update ");
}
override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
Debug.Log("On Attack Move ");
}
override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
Debug.Log("On Attack IK ");
}
}
Публичные Методы
OnStateMachineEnter |
Вызывается в первом кадре обновления при переходе к конечному автомату. Это не вызывается при переходе в подсостояние конечного автомата.. |
OnStateMachineExit |
Вызывается в последнем кадре обновления при переходе из конечного автомата. Это не вызывается при переходе в подсостояние конечного автомата. |
Сообщения
OnStateEnter |
Вызывается в первом кадре обновления, когда конечный автомат оценивает это состояние. |
OnStateExit |
Вызывается в последнем кадре обновления, когда конечный автомат оценивает это состояние. |
OnStateIK |
Вызывается сразу после MonoBehaviour.OnAnimatorIK. |
OnStateMove |
Вызывается сразу после MonoBehaviour.OnAnimatorMove. |
OnStateUpdate |
Вызывается в каждом кадре обновления, кроме первого и последнего кадра. |
Унаследованные члены
Свойства
hideFlags |
Должен ли объект быть скрыт, сохранен вместе со сценой или изменен пользователем? |
name |
Название объекта. |
Публичные Методы
Статические Методы
Операторы
bool |
Объект существует? |
operator != |
Сравнивает, ссылаются ли два объекта на другой объект. |
operator == |
Сравнивает две ссылки на объекты, чтобы определить, ссылаются ли они на один и тот же объект. |
Сообщения
Awake |
Эта функция вызывается при запуске сценария ScriptableObject. |
OnDestroy |
Эта функция вызывается, когда объект сценария будет уничтожен. |
OnDisable |
Эта функция вызывается, когда объект сценария выходит за пределы области видимости. |
OnEnable |
Эта функция вызывается при загрузке объекта. |
OnValidate |
Функция только для редактора, которую Unity вызывает при загрузке скрипта или изменении значения в Инспекторе. |
Reset |
Сбросить значения по умолчанию. |