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