Двойной Прыжок в Unity

Реализация механики двойного прыжка в Unity требует создания скрипта для управления персонажем. Давайте создадим простой пример на основе движения персонажа с использованием скрипта на языке C#.

  1. Создайте пустой объект в вашей сцене:
    • Создайте пустой объект и добавьте к нему компонент Character Controller (или используйте другой способ управления персонажем, если у вас есть предпочтения).
  2. Создайте новый C# скрипт:
    • Создайте новый скрипт в Unity и назовите его, например, «DoubleJumpController».
  3. Откройте скрипт и реализуйте механику:
using UnityEngine;

public class DoubleJumpController : MonoBehaviour
{
    private CharacterController characterController;
    private Vector3 playerVelocity;
    private bool canDoubleJump;
    public float playerSpeed = 2.0f;
    public float jumpHeight = 1.5f;
    public float doubleJumpHeight = 1.0f;
    public float gravityValue = -9.81f;

    void Start()
    {
        characterController = GetComponent<CharacterController>();
        canDoubleJump = true;
    }

    void Update()
    {
        // Перемещение по горизонтали
        float horizontalInput = Input.GetAxis("Horizontal");
        Vector3 moveDirection = new Vector3(horizontalInput, 0, 0);
        characterController.Move(moveDirection * playerSpeed * Time.deltaTime);

        // Прыжок
        if (characterController.isGrounded)
        {
            canDoubleJump = true;  // Разрешаем двойной прыжок, если игрок на земле
            playerVelocity.y = -2f; // Сбрасываем вертикальную скорость перед прыжком

            if (Input.GetButtonDown("Jump"))
            {
                playerVelocity.y = Mathf.Sqrt(jumpHeight * -2f * gravityValue);
            }
        }
        else
        {
            // Двойной прыжок
            if (canDoubleJump && Input.GetButtonDown("Jump"))
            {
                playerVelocity.y = Mathf.Sqrt(doubleJumpHeight * -2f * gravityValue);
                canDoubleJump = false; // Запрещаем двойной прыжок до следующего касания земли
            }
        }

        // Гравитация
        playerVelocity.y += gravityValue * Time.deltaTime;
        characterController.Move(playerVelocity * Time.deltaTime);
    }
}
  1. Добавьте скрипт к вашему объекту:
    • Перетащите скрипт «DoubleJumpController» на ваш объект в сцене.
  2. Настройте параметры:
    • В инспекторе объекта с вашим скриптом установите параметры playerSpeed, jumpHeight, и doubleJumpHeight в соответствии с вашими предпочтениями.
  3. Настройте Input:
    • Проверьте, что у вас есть настроенный в Unity Input с именем «Jump». Вы можете настроить это в разделе «Edit -> Project Settings -> Input Manager».

Теперь ваш персонаж должен иметь возможность выполнить двойной прыжок при нажатии клавиши «Jump» в воздухе после первого прыжка.

Видео гайд (вариант реализации)

2D прыжок / двойной прыжок для платформера - Unity легко2D прыжок / двойной прыжок для платформера — Unity легко

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

пять × два =

Прокрутить вверх