Ничего не происходит, когда я нажимаю пространство в единстве - PullRequest
0 голосов
/ 22 марта 2020

Я делаю свой первый проект единства. Я хотел добавить прыжки, но ничего не происходит, когда я нажимаю пробел. Я использую C#. Я проверил и входы должны быть в порядке. Может ли кто-нибудь помочь, пожалуйста?

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

public class pmovr : MonoBehaviour
{
    public Vector3 jump;
    public float jumpForce = 20.0f;
    public bool isGrounded;
    Rigidbody rb;   
    public CharacterController pmove;
    public float speed = 12f;
    public float grav = -9.81f;
    private Vector3 velocity;
    void Start(){
        rb = GetComponent<Rigidbody>();
        jump = new Vector3(0.0f, 2.0f, 0.0f);
        }
    void OnCollisionStay()
        {
        isGrounded = true;
        }
    void Update()
    {
        float x = Input.GetAxis("Horizontal");
        float z = Input.GetAxis("Vertical");

        Vector3 movement = transform.right * x + transform.forward * z;
        pmove.Move(movement * speed * Time.deltaTime);
        velocity.y += grav * Time.deltaTime;
        pmove.Move(velocity * Time.deltaTime);      
        if(Input.GetKeyDown(KeyCode.Space) && isGrounded){
            rb.AddForce(jump * jumpForce, ForceMode.Impulse);
            isGrounded = false;
        }
    }
}

1 Ответ

0 голосов
/ 22 марта 2020

Я попробовал ваш скрипт и столкнулся со следующими проблемами:

  • Сценарий CharacterController создан для работы без жестких тел, поэтому приложенные к нему силы не влияют.

  • CharacterController имеет свои собственные коллайдеры, так что добавление его больше (я
    не знаю, сделаете ли вы это, но просто охватываю возможности) может вызвать проблемы с проверкой, заземлен он или нет.

Я рекомендую удалить ваш скрипт CharacterController и продолжать кодировать его поведение. Если вам удастся выполнить прыжок, вам будет легко двигаться!

В любом случае и в качестве совета попробуйте отладить ваши переменные отдельно. Когда вы нажимаете пробел, выведите значение «isGounded», если оно истинно, проверьте состояние rb, et c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...