Animator.GetCurrentAnimatorStateInfo
Declaration
public AnimatorStateInfo GetCurrentAnimatorStateInfo(int layerIndex);Параметры
| Параметр | Описание |
|---|---|
| layerIndex | Индекс слоя. |
Возвращаемое значение
AnimatorStateInfo Ан AnimatorStateInfo со сведениями о текущих состояниях.
Описание
Возвращает AnimatorStateInfo со сведениями о текущем состоянии.
Возвращает данные текущего состояния в Animator. Через них можно получить подробности состояния: скорость, длительность, имя и другие переменные. О сборе сведений из клипов, входящих в состояния, см. Animator.GetCurrentAnimatorClipInfo.
//Create a GameObject and attach an Animator component (Click the Add Component button in the Inspector window, go to Miscellaneous>Animator). //Create an Animator by going to Assets > Create > Animator Controller. Attach this Controller to the Animator attached to your GameObject //In the Animator Controller, create a Trigger parameter in the Parameters tab and name it “Jump”. Then create states and transition arrows that use this parameter.
//This script triggers an Animation parameter when you press the space key.
using UnityEngine;
public class Example : MonoBehaviour { Animator m_Animator; //Use to output current speed of the state to the screen float m_CurrentSpeed;
void Start() { //Get the Animator, which you attach to the GameObject you intend to animate. m_Animator = gameObject.GetComponent<Animator>(); //The current speed of the first Animator state m_CurrentSpeed = m_Animator.GetCurrentAnimatorStateInfo(0).speed; }
void Update() { //Press the space bar to tell the Animator to trigger the Jump Animation if (Input.GetKeyDown(KeyCode.Space)) { m_Animator.SetTrigger("Jump"); }
//When entering the Jump state in the Animator, output the message in the console if (m_Animator.GetCurrentAnimatorStateInfo(0).IsName("Jump")) { Debug.Log("Jumping"); } }
void OnGUI() { //Output the first Animation speed to the screen GUI.Label(new Rect(25, 25, 200, 20), "Speed of State : " + m_CurrentSpeed); } }