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

В этом уроке мы создадим базовый 2D-платформер в Unity. Это будет включать создание игрового персонажа, который может двигаться, прыгать и взаимодействовать с платформами. Мы также добавим некоторые базовые игровые элементы, такие как препятствия и предметы коллекционирования.

1. Настройка проекта

Начнем с создания нового 2D-проекта Unity:

  1. Откройте Unity и создайте новый 2D-проект.
  2. Перейдите в Файл > Новая сцена и выберите 2D-режим.
  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. Прикрепите этот скрипт к объекту Player, перетащив его из окна Project на Player в иерархии.

Замените содержимое скрипта следующим:

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. В иерархии щелкните правой кнопкой мыши и выберите Создать пустой, затем назовите его Платформа.
  2. Добавьте BoxCollider2D и Sprite Renderer на платформу.
  3. Выберите спрайт для платформы (например, плоский прямоугольник).
  4. Дублируйте платформу, нажав Ctrl+D (или Cmd+D на Mac), и расположите копии так, чтобы создать уровень.
  5. Пометьте эти объекты как Земля в Инспекторе для логики прыжка игрока.

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. Тестирование и настройка игры

Теперь, когда базовая механика на месте, вы можете протестировать игру, нажав кнопку Play. Попробуйте настроить следующее:

  • Измените значения moveSpeed и jumpForce, чтобы настроить скорость движения и прыжков игрока.
  • Дублируйте платформы и препятствия, чтобы создавать разные уровни.
  • Добавьте фоновые элементы или украшения, чтобы сделать игру визуально привлекательнее.

8. Улучшение платформера

Чтобы вывести свой платформер на новый уровень, рассмотрите возможность добавления:

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

Заключение

С этой простой настройкой 2D-платформера у вас теперь есть базовая структура игры, которую можно расширить с помощью дополнительных функций, уровней и полировки. Экспериментируйте с различными механиками и создайте свой собственный уникальный платформер.