【发布时间】:2020-01-24 22:03:39
【问题描述】:
我希望我的角色斜向跳跃,但当它落地时会滑动。
private void Update()
{
if (Input.GetMouseButtonUp(0) && isGrounded())
{
//jump
timeHeld = 0;
Debug.Log("MouseButtonUp = true");
rb.AddForce(jumpDirection, ForceMode2D.Impulse);
}
else if (isGrounded())
{
rb.velocity = Vector2.zero;
}
}
这段代码在某种程度上可以工作,但是当玩家落地时它会出现故障。我需要用一些力来让他脱离 isGrounded() ,否则他只会得到一些像素然后立即再次被推倒。 这是我的 isGrounded() 函数
private bool isGrounded()
{
RaycastHit2D raycastHit = Physics2D.BoxCast(boxCollider2d.bounds.center, boxCollider2d.bounds.size, 0f, Vector2.down, 0.1f, platformLayerMask);
return raycastHit.collider != null;
}
问题显然是我在 Boxcast() 中的距离为 0.1f。任何想法如何解决这个问题?
【问题讨论】: