仅在以下情况下发生: 在跳跃时击中墙壁+按下左右箭头。
当没有墙壁时,重力行为和性格下降。 但是,当角色撞到墙壁时,速度Y立即变为0。 当左右箭头键向上时,字符会再次下降。
GroundCheck效果很好。
我一直在思考很多时间,但我不知道为什么。 我需要帮助。
我的游戏错误视频:https://youtu.be/5omWCYm-y14
我的代码:
private void FixedUpdate()
{
isGrounded = Physics2D.OverlapCircle(GroundCheck.position, GroundCheckRadius, GroundLayer) != null;
if (isGrounded)
{
if (Input.GetKeyDown(KeyCode.Z))
{
body.AddForce(Vector2.up * JumpForce);
}
}
body.velocity = new Vector2(Input.GetAxisRaw("Horizontal") * DefaultSpeed, body.velocity.y);
}
答案 0 :(得分:0)
如果你直接设定速度,刚体会产生很大的水平力。
替换
body.velocity = new Vector2(Input.GetAxisRaw("Horizontal") * DefaultSpeed, body.velocity.y);
与
body.AddForce(Input.GetAxisRaw("Horizontal") * DefaultSpeed * Vector2.right);