版本: Unity 6 (6000.0)
语言英语
  • C#

Animator.GetCurrentAnimatorStateInfo

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们不能接受所有提交内容,但我们会阅读用户提出的每项建议变更,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的建议变更无法提交。请在几分钟后 重试。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

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