как исправить баг с прыжком
Не знаю как правильно описать баг в связи с низкой профессиональностью но попробую Когда мой персонаж прыгает (только с объекта где есть тэг Ground) и во время прыжка он цепляет объект с коллайдером, он как бы парит и если у объекта есть тэг Ground может еще раз подпрыгнуть
Ниже прикрепил код и пару скриншотов из игры, чтоб было более понятнee
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
private bool isGround = false;
private bool isFacingRight = true;
[SerializeField]private Animator anim;
public Rigidbody2D rb;
public float speed;
public float jumpForce;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}
private void OnCollisionEnter2D(Collision2D collision)
{
if (collision.gameObject.tag == "Ground") isGround = true;
}
void Update()
{
float horizontal = Input.GetAxis("Horizontal");
//mooving
rb.velocity = new Vector2(speed * horizontal, rb.velocity.y);
//jumping
if (Input.GetKeyDown(KeyCode.W) && isGround)
{
rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);
isGround = false;
}
//facing
if (horizontal < 0f && isFacingRight)
{
Flip();
}
else if(horizontal > 0f && !isFacingRight)
{
Flip();
}
//animator
anim.SetFloat("speedx", Mathf.Abs(horizontal));
void Flip()
{
isFacingRight = !isFacingRight;
Vector3 playerScale = transform.localScale;
playerScale.x *= -1;
transform.localScale = playerScale;
}
}
}
Скрин с игры https://imgur.com/a/1jD3KTY Видео с багом https://imgur.com/MLmrVNz