2D Платформер в Unity 5: гайд за 25 минут

Создадим простой, но функциональный 2D платформер в Unity 5. Руководство описывает процесс разработки, занимающий минимум времени.

Начало работы: создание проекта

  1. Запустите Unity и создайте новый проект. Назовите его, например, «Платформер». Отключите опцию «Enable Unity Analytics». Сохраните проект в удобном месте.
  2. Расположите вкладки Unity (Hierarchy, Scene, Game, Project, Inspector) по своему усмотрению.
  3. Откройте Build Settings (File > Build Settings). Выберите целевую платформу – Android (для мобильных устройств). Нажмите «Switch Platform».

Подготовка сцены и ресурсов

  1. Создайте папку «Scenes» в папке «Project» для хранения сцен игры.
  2. Сохраните текущую сцену как «Main» в папке «Scenes» (File > Save Scene).
  3. Создайте папку «Sprites» для хранения спрайтов (картинок). Найдите или создайте спрайты игрока и платформы. Убедитесь, что у них тип Sprite. Переместите спрайты в папку «Sprites» в проекте Unity.
  4. Переместите спрайты игрока и платформы на сцену. Уменьшите размер спрайта игрока до 0.4 x 0.4. Установите размер камеры (Camera Size) на 8, а дальность видимости (Depth) на 100 единиц. Отрегулируйте позицию игрока и платформы.

Добавление коллайдеров и физики

  1. Добавьте компонент Box Collider 2D к спрайту платформы и отрегулируйте его размер, чтобы он точно соответствовал размеру платформы.
  2. Добавьте компонент Box Collider 2D к спрайту игрока. Уменьшите его размер, чтобы он точно соответствовал размеру игрока.
  3. Добавьте компонент Circle Collider 2D к спрайту игрока немного ниже Box Collider 2D. Это позволит игроку взбираться на наклонные поверхности.
  4. Добавьте компонент Rigidbody 2D к спрайту игрока. В настройках Rigidbody 2D установите Constraints – заморозьте вращение (Freeze Rotation). Установите Gravity Scale на 10.
  5. В Edit > Project Settings > Physics 2D установите значение гравитации Gravity на -30. Для более плавного движения установите Interpolation в настройках Rigidbody 2D на значение Interpolate.

Скрипт управления игроком

  1. Создайте папку «Scripts» в папке «Project».
  2. Создайте новый C# скрипт и назовите его «PlayerController».
  3. Добавьте в скрипт следующий код:
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float speed = 5f;
    private Rigidbody2D rb;
    private bool faceRight = true;

    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        float moveX = Input.GetAxis("Horizontal");
        Vector2 movement = new Vector2(moveX * speed * Time.deltaTime, rb.velocity.y);
        rb.velocity = movement;

        if (moveX > 0 && !faceRight)
            Flip();
        else if (moveX < 0 && faceRight)
            Flip();
    }

    void Flip()
    {
        faceRight = !faceRight;
        transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, transform.localScale.z);
    }

    void FixedUpdate()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            rb.AddForce(Vector2.up * 800f);
        }
    }
}
  1. Прикрепите скрипт PlayerController к спрайту игрока.

Камера, следующая за игроком

  1. Создайте новый C# скрипт и назовите его «CameraFollow».
  2. Добавьте в скрипт следующий код:
using UnityEngine;

public class CameraFollow : MonoBehaviour
{
    public Transform player;

    void Update()
    {
        transform.position = new Vector3(player.position.x, player.position.y, -10);
    }
}
  1. Прикрепите скрипт CameraFollow к камере. В инспекторе камеры укажите объект игрока в поле player.

Создание префабов и уровня

  1. Создайте папку «Prefabs» в папке «Project».
  2. Перетащите платформу в папку «Prefabs», чтобы создать префаб.
  3. Создайте несколько копий префаба платформы и разместите их на сцене, чтобы сформировать уровень.

Точка респауна и триггер проигрыша

  1. Создайте пустой объект и назовите его «Respawn». Установите его координаты (0, 0.18, 0).
  2. Создайте куб (3D объект), назовите его «DeathTrigger» и добавьте к нему компонент Box Collider 2D. Сделайте его триггером. Расположите его под уровнем, чтобы он служил триггером проигрыша.
  3. Создайте новый C# скрипт и назовите его «DeathTriggerScript».
  4. Добавьте в скрипт следующий код:
using UnityEngine;

public class DeathTriggerScript : MonoBehaviour
{
    public Transform respawnPoint;

    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.CompareTag("Player"))
        {
            collision.transform.position = respawnPoint.position;
        }
    }
}
  1. Прикрепите скрипт DeathTriggerScript к объекту «DeathTrigger» и укажите объект «Respawn» в поле respawnPoint. Убедитесь, что игрок имеет тег «Player» в инспекторе.

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

Что будем искать? Например,программа