Создание простого 2D-платформера в Unity
В этом уроке мы создадим базовый 2D-платформер в Unity. Это будет включать создание игрового персонажа, который может двигаться, прыгать и взаимодействовать с платформами. Мы также добавим некоторые базовые игровые элементы, такие как препятствия и предметы коллекционирования.
1. Настройка проекта
Начнем с создания нового 2D-проекта Unity:
- Откройте Unity и создайте новый 2D-проект.
- Перейдите в Файл > Новая сцена и выберите 2D-режим.
- Сохраните сцену как MainScene.
2. Создание персонажа игрока
Сначала мы создадим простого персонажа игрока с помощью спрайта и добавим ему функционал движения:
- Щелкните правой кнопкой мыши в окне Hierarchy и выберите Create Empty. Назовите этот объект Player.
- Добавьте компонент Sprite Renderer к объекту Player, нажав Add Component в инспекторе.
- Выберите спрайт для использования в качестве персонажа, создав свой собственный или импортировав 2D-ресурс из Unity Asset Store.
- Добавьте Rigidbody2D и BoxCollider2D к объекту Player для физики и обнаружения столкновений.
3. Написание сценария движения игрока
Теперь давайте напишем скрипт, который позволит игроку двигаться и прыгать. Выполните следующие шаги:
- Щелкните правой кнопкой мыши в окне Project и выберите Create > C# Script. Назовите его PlayerController.
- Прикрепите этот скрипт к объекту 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. Создание платформ и среды
Теперь мы создадим платформы, по которым игрок сможет прыгать:
- В иерархии щелкните правой кнопкой мыши и выберите Создать пустой, затем назовите его Платформа.
- Добавьте BoxCollider2D и Sprite Renderer на платформу.
- Выберите спрайт для платформы (например, плоский прямоугольник).
- Дублируйте платформу, нажав Ctrl+D (или Cmd+D на Mac), и расположите копии так, чтобы создать уровень.
- Пометьте эти объекты как Земля в Инспекторе для логики прыжка игрока.
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-платформера у вас теперь есть базовая структура игры, которую можно расширить с помощью дополнительных функций, уровней и полировки. Экспериментируйте с различными механиками и создайте свой собственный уникальный платформер.