Создаём игру «Собери монеты» в Unity с нуля

Введение в разработку игры

Создание игр — это увлекательный процесс, который сочетает в себе творчество и технические навыки. В этой статье мы рассмотрим, как создать простую игру под названием «Собери монеты» с нуля, используя Unity. Эта игра будет включать в себя сбор монет, управление персонажем и простую логику игры.

Что нам понадобится

Перед тем как начать, убедитесь, что у вас установлены следующие инструменты:

  • Unity — последняя версия, доступная на официальном сайте.
  • Visual Studio или другой текстовый редактор для написания кода.
  • Базовые знания о C# и интерфейсе Unity.

Создание нового проекта

Запустите Unity и создайте новый проект:

  1. Выберите 2D как тип проекта.
  2. Назовите проект «Собери монеты».
  3. Нажмите Create.

Настройка сцены

Теперь, когда проект создан, давайте настроим сцену:

  • Добавьте Sprite для фона. Вы можете использовать любой подходящий изображение.
  • Создайте Player — персонажа, который будет собирать монеты. Для этого добавьте новый Sprite и назовите его Player.
  • Создайте Coin — монету, которую игрок будет собирать. Добавьте еще один Sprite и назовите его Coin.

Создание скриптов

Теперь давайте создадим скрипты для управления персонажем и логики игры.

Скрипт для игрока

Создайте новый скрипт PlayerController.cs и добавьте его к объекту Player. В этом скрипте мы будем обрабатывать движение игрока:

using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float moveSpeed = 5f;

    void Update()
    {
        float moveHorizontal = Input.GetAxis("Horizontal");
        float moveVertical = Input.GetAxis("Vertical");

        Vector2 movement = new Vector2(moveHorizontal, moveVertical);
        transform.Translate(movement * moveSpeed * Time.deltaTime);
    }
}

Скрипт для монет

Теперь создадим скрипт Coin.cs для монет. Этот скрипт будет обрабатывать сбор монет:

using UnityEngine;

public class Coin : MonoBehaviour
{
    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player"))
        {
            Destroy(gameObject);
        }
    }
}

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

Чтобы игрок мог взаимодействовать с монетами, необходимо добавить компоненты физики:

  • Выберите объект Player и добавьте компонент Rigidbody2D.
  • Выберите объект Coin и добавьте компонент Collider2D (например, CircleCollider2D).

Настройка тегов

Не забудьте установить тег для объекта Player:

  1. Выберите объект Player.
  2. В инспекторе выберите Add Tag и создайте новый тег Player.
  3. Назначьте этот тег объекту Player.

Создание игрового процесса

Теперь давайте добавим логику для отслеживания собранных монет. Создайте новый скрипт GameManager.cs и добавьте его на пустой объект в сцене:

using UnityEngine;
using UnityEngine.UI;

public class GameManager : MonoBehaviour
{
    public int score = 0;
    public Text scoreText;

    void Start()
    {
        UpdateScore();
    }

    public void CollectCoin()
    {
        score++;
        UpdateScore();
    }

    void UpdateScore()
    {
        scoreText.text = "Score: " + score;
    }
}

Теперь измените скрипт Coin.cs, чтобы он вызывал метод CollectCoin при сборе монеты:

using UnityEngine;

public class Coin : MonoBehaviour
{
    public GameManager gameManager;

    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player"))
        {
            gameManager.CollectCoin();
            Destroy(gameObject);
        }
    }
}

Добавление UI

Чтобы игрок мог видеть свой счёт, добавим элемент UI:

  1. Перейдите в GameObject > UI > Text.
  2. Настройте текст, чтобы он отображал счёт.
  3. Перетащите текст в поле scoreText в инспекторе объекта GameManager.

Тестирование игры

Теперь, когда все элементы готовы, давайте протестируем игру:

  • Нажмите Play в Unity.
  • Управляйте персонажем с помощью клавиш WASD или стрелок.
  • Собирайте монеты и наблюдайте за изменением счёта.

Заключение

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

Примечание

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