【发布时间】:2014-03-30 18:21:14
【问题描述】:
我使用 Animator 创建了两个动画状态,我想在运行类型时更改这些动画的速度。如何在运行时获取这些动画并更改它们的速度?我必须附加动画组件还是动画器就足够了?
【问题讨论】:
我使用 Animator 创建了两个动画状态,我想在运行类型时更改这些动画的速度。如何在运行时获取这些动画并更改它们的速度?我必须附加动画组件还是动画器就足够了?
【问题讨论】:
使用 GetCurrentAnimatorStateInfo() 获取当前状态信息。
“基础层”是您的基础层的名称
var currentState : AnimatorStateInfo = animator.GetCurrentAnimatorStateInfo(0);
if (currentState.nameHash == Animator.StringToHash("Base Layer.Player_standing"))
{
Debug.Log("I'm standing");
}
【讨论】:
//get animation:
animator = GetComponent<Animator>();
AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
//get animation speed, add animation speed
Debug.Log("StateInfo length: "+stateInfo.length);
if(Input.GetKeyDown(KeyCode.A))
{
animator.speed += 1f;
}
【讨论】: