Я бы порекомендовал начать с некоторых курсов на их веб-сайте (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