Menu
CoddyTech

Повторение: двойной прыжок

Часть раздела Создание настоящих игр путешествия по Unity на Coddy. Урок 43 из 60.

В этой главе мы перемещали CharacterController вручную: для ходьбы использовали Move, гравитацию хранили в поле, а прыжки рассчитывали исходя из их высоты. Теперь герой может прыгнуть ещё раз в воздухе.

challenge icon

Задание

Средне

Дайте герою возможность прыгать и совершать один прыжок в воздухе. Ходьба уже написана.

  1. Сначала, когда герой на земле: airJumpUsed = false, а при падении verticalSpeed становится равным -2f.
  2. При нажатии Input.GetButtonDown("Jump"): если герой на земле, verticalSpeed = Mathf.Sqrt(jumpHeight * -2f * gravity);; иначе, если !airJumpUsed, выполните то же самое с airJumpHeight и установите airJumpUsed.
  3. Затем прибавьте 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);
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Создание настоящих игр

Потренируйтесь самостоятельно: Песочница Unity