Повторение: двойной прыжок
Часть раздела Создание настоящих игр путешествия по Unity на Coddy. Урок 43 из 60.
В этой главе мы перемещали CharacterController вручную: для ходьбы использовали Move, гравитацию хранили в поле, а прыжки рассчитывали исходя из их высоты. Теперь герой может прыгнуть ещё раз в воздухе.
Задание
СреднеДайте герою возможность прыгать и совершать один прыжок в воздухе. Ходьба уже написана.
- Сначала, когда герой на земле:
airJumpUsed = false, а при паденииverticalSpeedстановится равным-2f. - При нажатии
Input.GetButtonDown("Jump"): если герой на земле,verticalSpeed = Mathf.Sqrt(jumpHeight * -2f * gravity);; иначе, если!airJumpUsed, выполните то же самое сairJumpHeightи установитеairJumpUsed. - Затем прибавьте
gravity * Time.deltaTimeкverticalSpeed.
Нажмите «Играть» и совершите двойной прыжок на уступ. Затем нажмите «Проверить».
Попробуйте сами
using UnityEngine;
public class Hero : MonoBehaviour
{
public float speed = 5f;
public float gravity = -25f;
public float jumpHeight = 2f;
public float airJumpHeight = 1.28f;
CharacterController controller;
float verticalSpeed;
bool airJumpUsed;
void Start()
{
controller = GetComponent<CharacterController>();
}
void Update()
{
// Сбрасывай состояние на земле, выполняй прыжок или прыжок в воздухе по Space, затем добавляй гравитацию
Vector3 move = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical")) * speed;
move.y = verticalSpeed;
controller.Move(move * Time.deltaTime);
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Создание настоящих игр
1Текст на экране
Холст и текстПокажем счётФорматирование чиселТаймер обратного отсчётаПовторение: спидометр4Сцены и уровни
Загрузить сценуПерезапустить уровеньСледующий уровеньСохранить между сценамиПовторение: выбор уровня2Кнопки и экраны
Кнопки и onClickЛямбдыСвязи в InspectorВключение и выключение панелейШкалы здоровьяПовторение: магазин улучшений5Сохранение с помощью PlayerPrefs
Сохранение числаЗагрузка со значением по умолчаниюРекордСохранение настроекПовторение: монеты в банке8Контроллер персонажа
CharacterController.MoveГравитация вручнуюПрыжкиТолкаем предметыДвижение в направлении взглядаПовторение: двойной прыжокПотренируйтесь самостоятельно: Песочница Unity