在Update()
函数中,我有:
isGrounded = Physics2D.Linecast (transform.position, groundCheck.position, 1 << LayerMask.NameToLayer("Ground"));
if (Input.GetButtonDown ("Jump") && isGrounded) {
jump = true;
}
我在FixedUpdate()
:
if (jump) {
anim.SetTrigger("Jump");
rb.AddForce(new Vector2 (0f, jumpForce));
jump = false;
}
我必须检测我的角色降落在地面上的时刻(isGrounded
将变为真)将动画切换回空闲状态。我无法使用isGrounded
来检测它,因为您可以看到当isGrounded
为真时执行跳转,因此空闲动画触发器将在跳转动画同时启动很少或根本没有跳跃动画。
你能帮帮我吗?
答案 0 :(得分:0)
也许你有一个地板游戏对象,当跌倒时跳跃角色会碰撞?所以使用OnCollisionEnter
应该有用。
答案 1 :(得分:0)
我通过将跳跃动画划分为跳跃过渡到下降来解决这个问题。动画根据y轴移动是正还是负来切换到这些状态。