Как прыгнуть в Unity 3d? - PullRequest
       16

Как прыгнуть в Unity 3d?

0 голосов
/ 14 октября 2019

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

1 Ответ

1 голос
/ 14 октября 2019

Я бы порекомендовал начать с некоторых курсов на их веб-сайте (http://unity3d.com/learn), но для ответа на ваш вопрос следующий общий сценарий будет работать.

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(Rigidbody))]
public class PlayerController : MonoBehaviour {
    public Vector3 jump;
    public float jumpForce = 2.0f;

    public bool isGrounded;
    Rigidbody rb;
    void Start(){
        rb = GetComponent<Rigidbody>();
        jump = new Vector3(0.0f, 2.0f, 0.0f);
    }

    void OnCollisionStay(){
        isGrounded = true;
    }

    void Update(){
        if(Input.GetKeyDown(KeyCode.Space) && isGrounded){

            rb.AddForce(jump * jumpForce, ForceMode.Impulse);
            isGrounded = false;
        }
    }
}

Давайте немного разберемся с этим:

[RequireComponent(typeof(Rigidbody))] 

Прежде чем мы сделаем какие-либо расчеты, мы хотим убедиться, что у вас есть твердое тело.

public Vector3 jump; 

Vector3 - это переменная, хранящая значения трех осей. Здесь мы используем его, чтобы определить, куда мы прыгаем.

public bool isGrounded; 

Нам нужно определить, находятся ли они на земле. Bool (или логическое) для да, мы (истинно), или нет, мы не (ложь).

void OnCollisionStay(){
    isGrounded = true;
}

в Start(), мы присваиваем переменную rb (устанавливается из Rigidbody rb) длякомпонент, прикрепленный к вашему GameObj, а также мы присваиваем значения прыжку Vector3.

Тогда мы Update() с этим:

if(Input.GetKeyDown(KeyCode.Space) && isGrounded){     
    rb.AddForce(jump * jumpForce, ForceMode.Impulse);
    isGrounded = false;
}

означает, что если игрок нажмет кнопку Пробел и нав то же время GameObj заземлен, он добавляет физическую силу к жесткому телу, используя.

AddForce(Vector3 force, ForceMode mode)

где сила - это Вектор3, хранящий информацию о движении, а режим - как сила будет применена (режим можетбыть ForceMode.Force, ForceMode.Acceleration, ForceMode.Impulse или ForceMode.VelocityChange, подробнее см. ForceMode).

Наконец, Google - ваш лучший друг. Не забудьте исчерпать свои возможности в будущем, чтобы получить самые быстрые результаты!

Ответ - это упрощенное переписывание этого: https://answers.unity.com/questions/1020197/can-someone-help-me-make-a-simple-jump-script.html

...