@KLEM20

Как исправить баг в unity2d связанный с прыжком?

Когда я нажимаю пробел или W, то мой персонаж прыгает нормально, а когда я одновременно нажимаю W + пробел, то персонаж слишком высоко прыгает
Вот исходный код
using System;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;

public class PlayerTheConrol : MonoBehaviour
{
    public Vector2 MoveVector;
    public int PlayerMoveSpeed = 5;
    public float JumpPower = 350f;
    public Rigidbody2D rb;
    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
        
    }


    void Update()
    {
        Jump();
        Walk();
        ChekingGround();
    }

    void Walk()
    {
        MoveVector.x = Input.GetAxis("Horizontal");
        rb.velocity = new Vector2(MoveVector.x * PlayerMoveSpeed, rb.velocity.y);
    }

    void Jump()
    {
        if (Input.GetKeyDown((KeyCode.W)) && OnGround)
        {
            rb.AddForce(Vector2.up * JumpPower);

        }
        else if (Input.GetKeyDown((KeyCode.Space)) && OnGround)
        {
            rb.AddForce(Vector2.up * JumpPower);
        }
    }

    public bool OnGround;
    public Transform GroundCheck;
    public float CheckRad = 0.5f;
    public LayerMask Ground;

    void ChekingGround()
    {
        OnGround = Physics2D.OverlapCircle(GroundCheck.position, CheckRad, Ground);
    }
}
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы