Я бы хотел, чтобы мой персонаж прыгал по диагонали, но когда он падает на землю, он скользит.
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;
}
}
этот код как-то работает, но он глючит, когда игрок падает на землю. Мне нужно приложить некоторое усилие, чтобы вытащить его из isGounded (), иначе он просто поднимет несколько пикселей и снова будет мгновенно оттолкнут. Это моя функция isGounded ()
private bool isGrounded()
{
RaycastHit2D raycastHit = Physics2D.BoxCast(boxCollider2d.bounds.center, boxCollider2d.bounds.size, 0f, Vector2.down, 0.1f, platformLayerMask);
return raycastHit.collider != null;
}
проблема, очевидно, в моем расстоянии, равном 0,1f в Boxcast (). Есть идеи как это исправить?