我如何让动画完成,即使我放手也不会被打断
本文关键字:放手 动画 | 更新日期: 2023-09-27 17:50:45
基本上,我希望滚动动画完整地播放,而不是像战斗游戏的特殊动作那样被打断。所以当我按下或按住时,在这个例子中,动画必须完成一个循环,然后我必须再次按下或按住按下键才能再次启动。如果你能帮我,那就太好了。
const int STATE_Idle = 0;
const int STATE_Run = 1;
const int STATE_Roll = 2;
const int STATE_Jump = 3;
if (Input.GetKey ("down")
{
changeState(STATE_Roll);
transform.Translate(new Vector3(1f, -.4f, 0f) * rollSpeed * Time.deltaTime);
}
if (animator.GetCurrentAnimatorStateInfo(0).IsName("roll"))
_isPlaying_roll = true;
else
_isPlaying_roll = false;
}
//--------------------------------------
// Change the players animation state
//--------------------------------------
void changeState(int state){
if (_currentAnimationState == state)
return;
switch (state) {
case STATE_Run:
animator.SetInteger ("state", STATE_Run);
break;
case STATE_Roll:
animator.SetInteger ("state", STATE_Roll);
break;
case STATE_Jump:
animator.SetInteger ("state", STATE_Jump);
break;
case STATE_Idle:
animator.SetInteger ("state", STATE_Idle);
break;
}
_currentAnimationState = state;
}
你把你的动画条放在一个列表上怎么样?每次您想要运行动画时,检查是否有其他不是您想要的用户输入。如果它是你想要的输入,遍历整个列表,然后继续执行下一步的操作。
像这样:
foreach(var strip in animationStrips)
{
//Display current strip
}