Створення простого 2D-платформера в Unity

У цьому підручнику ми створимо базовий 2D-платформер у Unity. Це включатиме створення персонажа гравця, який може рухатися, стрибати та взаємодіяти з платформами. Ми також додамо деякі основні ігрові елементи, такі як перешкоди та предмети колекціонування.

1. Налаштування проекту

Почнемо з налаштування нового Unity 2D проекту:

  1. Відкрийте Unity і створіть новий 2D-проект.
  2. Перейдіть до File > New Scene і виберіть 2D Mode.
  3. Збережіть сцену як MainScene.

2. Створення персонажа гравця

Спочатку ми створимо простого персонажа гравця за допомогою спрайту та додамо функцію руху:

  1. Клацніть правою кнопкою миші у вікні Hierarchy і виберіть Create Empty. Назвіть цей об’єкт Player.
  2. Додайте компонент Sprite Renderer до об’єкта Player, натиснувши Add Component в інспекторі.
  3. Виберіть спрайт для використання як персонажа, створивши власний або імпортувавши 2D ресурс із Unity Asset Store.
  4. Додайте Rigidbody2D і BoxCollider2D до об’єкта Player для фізики та виявлення зіткнень.

3. Написання сценарію руху гравця

Тепер давайте напишемо сценарій, який дозволить гравцеві рухатися та стрибати. Виконайте такі дії:

  1. Клацніть правою кнопкою миші у вікні Project і виберіть Create > C# Script. Назвіть його PlayerController.
  2. Прикріпіть цей сценарій до об’єкта програвача, перетягнувши його з вікна проекту до програвача в ієрархії.

Замініть вміст сценарію таким:

using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float moveSpeed = 5f;
    public float jumpForce = 7f;
    private Rigidbody2D rb;
    private bool isGrounded = true;

    void Start()
    {
        rb = GetComponent();
    }

    void Update()
    {
        // Player movement
        float moveInput = Input.GetAxis("Horizontal");
        rb.velocity = new Vector2(moveInput * moveSpeed, rb.velocity.y);

        // Jumping
        if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
        {
            rb.velocity = new Vector2(rb.velocity.x, jumpForce);
            isGrounded = false;
        }
    }

    private void OnCollisionEnter2D(Collision2D collision)
    {
        // Check if player is touching the ground
        if (collision.collider.CompareTag("Ground"))
        {
            isGrounded = true;
        }
    }
}

4. Створення платформ і середовища

Тепер ми створимо платформи, на які гравець зможе стрибати:

  1. В ієрархії клацніть правою кнопкою миші та виберіть Create Empty, а потім назвіть її Platform.
  2. Додайте BoxCollider2D і Sprite Renderer на платформу.
  3. Виберіть спрайт для платформи (наприклад, плоский прямокутник).
  4. Створіть копію платформи, натиснувши Ctrl+D (або Cmd+D на Mac) і розмістіть копії, щоб створити рівень.
  5. Позначте ці об’єкти як Ground в інспекторі для логіки стрибка гравця.

5. Додавання перешкод

Щоб зробити гру складнішою, давайте додамо кілька перешкод:

  • Створіть ще один порожній GameObject і назвіть його Obstacle.
  • Додайте BoxCollider2D і Sprite Renderer до цього об’єкта.
  • Виберіть спрайт для перешкоди (наприклад, шип або небезпека).
  • У методі гравця OnCollisionEnter2D ви можете виявити зіткнення з перешкодами та перезапустити гру або відняти здоров’я.

6. Додавання предметів колекціонування

Ми також можемо додавати предмети колекціонування, наприклад монети або бонуси:

  • Створіть ще один порожній GameObject і назвіть його Collectible.
  • Додайте CircleCollider2D (встановіть його як тригер) і Sprite Renderer, щоб представити предмет колекціонування.
  • Напишіть простий сценарій, щоб визначити, коли гравець збирає предмет:
using UnityEngine;

public class Collectible : MonoBehaviour
{
    private void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player"))
        {
            // Add points or other effects here
            Destroy(gameObject); // Remove the collectible from the scene
        }
    }
}

7. Тестування та налаштування гри

Тепер, коли основні механізми готові, ви можете перевірити гру, натиснувши кнопку «Відтворити». Спробуйте налаштувати наступне:

  • Змініть значення moveSpeed і jumpForce, щоб налаштувати швидкість руху та стрибків гравця.
  • Дублюйте платформи та перешкоди для створення різних рівнів.
  • Додайте фонові елементи або прикраси, щоб зробити гру візуально привабливою.

8. Покращення платформера

Щоб вивести свій платформер на новий рівень, додайте:

  • Анімація для гравця, наприклад анімація ходьби та стрибків.
  • Звукові ефекти для стрибків, збирання предметів і наїздів на перешкоди.
  • Камера, яка стежить за рухами гравця для більш динамічного перегляду гри.

Висновок

Завдяки цьому простому налаштуванню 2D-платформера тепер у вас є базова структура гри, яку можна розширити за допомогою додаткових функцій, рівнів і вдосконалень. Експериментуйте з різними механіками та створюйте свій власний унікальний платформер.