Я скопировал этот скрипт прыжков с unity из Интернета, но он не работает

#c# #visual-studio #unity3d #game-engine #game-physics

Вопрос:

Это мой сценарий движения:

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float MovementSpeed = 5f;
    public Animator animator;
    public float fallMultiplier = 2.5f;
    public float lowJumpMultiplier = 2f;
    Rigidbody2D rb;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    void Awake()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    // Update is called once per frame
    void Update()
    {
        float Horizontal = Input.GetAxisRaw("Horizontal");

        Vector2 pos = transform.position;

        pos.x  = Horizontal * MovementSpeed * Time.deltaTime;

        transform.position = pos;

        animator.SetFloat("Speed", Horizontal);

        if (rb.velocity.y < 0)
        {
            rb.velocity  = Vector2.up * Physics2D.gravity.y * (fallMultiplier - 1) * Time.deltaTime;
        }
        else if (rb.velocity.y > 0 amp;amp; !Input.GetButton("Jump"))
        {
            rb.velocity  = Vector2.up * Physics2D.gravity.y * (lowJumpMultiplier - 1) * Time.deltaTime;
        }
    }
}
 

когда я нажимаю пробел, ничего не происходит. но другое движение работает, когда я нажимаю a или d. я пробовал несколько сценариев прыжков, но все они не работают. я должен добавить больше деталей, потому что у меня много кода, но мне больше нечего сказать, поэтому я просто наберу это bs.

Комментарии:

1. Чтобы отредактировать, настроить или удалить кнопки и их названия (например, «Fire1»): 1. Перейдите в меню «Правка» > «Настройки проекта» > «Диспетчер ввода», чтобы открыть диспетчер ввода. Проверьте документацию

2. в списке уже есть место, но оно все еще не работает

3. получаете ли вы какие — либо ошибки в консоли? есть ли у вашего плеера PlayerMovement компоненты Rigidbody2D и a?

4. никаких ошибок, и к нему прилагаются оба

Ответ №1:

Я не совсем уверен, понял ли я, является ли этот сценарий оригинальным?

  • если да, можете ли вы поделиться источником?
  • если нет, можете ли вы сообщить нам, как вы интегрировались?

Мне кажется, что вы хотели бы иметь: Input.GetButton("Jump")

вместо: !Input.GetButton("Jump")