为了账号安全,请及时绑定邮箱和手机立即绑定

不再按下按钮时动画继续运行

不再按下按钮时动画继续运行

C#
白猪掌柜的 2023-04-29 16:52:15
整数值仍然是 1,动画继续运行。我不知道怎么了。动画师:AnyState -> Jump(条件:“Jumping”等于 1)跳跃 -> 过渡(条件:“跳跃”等于 0)有退出时间=未检查我尝试将 Keycode 和 GetKey 更改为 GetKeyDown 仍然无法正常工作。预期结果:跳跃 = 0//6 Jumping Animationif (Input.GetKey(KeyCode.Space)){        anim.SetInteger("Jumping", 1);        moveDir.y = 2;        moveDir = transform.TransformDirection(moveDir);    }if (Input.GetKeyUp(KeyCode.Space)){    anim.SetInteger("Jumping", 0);    movementSpeed = 5f;}
查看完整描述

1 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

跳跃状态是等待玩家再次接触地面。所以如果你使用 GetKeyUp。而是动画有退出时间,或者动画没有正确开始,因为跳跃键在播放器仍在播放时上升。所以要解决这个问题很简单。等待几秒钟,然后关闭动画。


这是代码:


if (Input.GetKey(KeyCode.Space)){


    StartCoroutine(jumping(2f)); //set time delay to 2 seconds before the anim stop


}


private IENumerator jumping(float Time){

anim.SetInterger("Jumping",1);

moveDir.y = 1;

moveDir *= Speed; //your movement speed value

moveDir = transform.TransformDirection(moveDir); //set local value of moveDir to world

yield return new WaitForSeconds(Time); //adjust the delay of your animation to stop

anim.SetInterger("Jumping",0) //Jumping animation stop after time delay

moveDir = new Vector3(0,0,0); //reset the Vector 3 to zero

}


查看完整回答
反对 回复 2023-04-29
  • 1 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信