Как создать игру с пушкой в ​​Unity

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

Шаг 1: Настройка проекта

Сначала откройте Unity и создайте новый 2D-проект. Назовите свой проект "CannonGame". Как только проект будет создан, вы окажетесь в главном окне редактора Unity.

Шаг 2: Создание пушки

Нам нужно визуальное представление пушки. Вы можете создать простой прямоугольный спрайт, который будет служить вашей пушкой. Сделать это:

  1. Щелкните правой кнопкой мыши в окне Иерархия и выберите Создать пустое. Назовите его "Cannon".
  2. Щелкните правой кнопкой мыши объект "Cannon" и выберите 2D Object -> Sprite. Назовите его "CannonSprite".
  3. В окне Inspector щелкните поле Sprite и выберите спрайт для вашей пушки.

Расположите пушку внизу экрана, задав ее позицию (0, -4, 0) в компоненте Transform.

Теперь создайте скрипт для управления пушкой. Щелкните правой кнопкой мыши папку Assets, выберите Create -> C# Script и назовите его "CannonController". Дважды щелкните сценарий, чтобы открыть его в редакторе кода.

// CannonController.cs
using UnityEngine;

public class CannonController : MonoBehaviour
{
    public GameObject cannonballPrefab;
    public float shootForce = 700f;

    void Update()
    {
        Aim();
        if (Input.GetButtonDown("Fire1"))
        {
            Shoot();
        }
    }

    void Aim()
    {
        Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        Vector2 direction = new Vector2(mousePosition.x - transform.position.x, mousePosition.y - transform.position.y);
        transform.up = direction;
    }

    void Shoot()
    {
        GameObject cannonball = Instantiate(cannonballPrefab, transform.position, transform.rotation);
        Rigidbody2D rb = cannonball.GetComponent();
        rb.AddForce(transform.up * shootForce);
    }
}

Шаг 3: Создание пушечного ядра

Нам нужно создать ядро, чтобы пушка могла стрелять. Вот как:

  1. Щелкните правой кнопкой мыши в окне Hierarchy и выберите 2D Object -> Sprite. Назовите его "Cannonball".
  2. В окне Inspector щелкните поле Sprite и выберите спрайт для вашего пушечного ядра.
  3. Добавьте компонент Rigidbody2D к пушечному ядру, нажав Add Component и выбрав Rigidbody2D.
  4. Добавьте компонент CircleCollider2D к пушечному ядру, нажав Add Component и выбрав CircleCollider2D.

Затем перетащите ядро ​​из папки Hierarchy в папку Assets, чтобы создать префаб. Этот префаб будет использоваться пушкой для стрельбы ядрами.

В окне Inspector скрипта CannonController (прикрепленного к объекту Cannon) установите в поле CannonballPrefab префаб пушечного ядра.

Шаг 4: Создание целей

Давайте добавим несколько целей, по которым игрок будет стрелять:

  1. Щелкните правой кнопкой мыши в окне Hierarchy и выберите 2D Object -> Sprite. Назовите его "Target".
  2. В окне Inspector щелкните поле Sprite и выберите спрайт для вашей цели.
  3. Добавьте компонент BoxCollider2D к цели, нажав Добавить компонент и выбрав BoxCollider2D.

Дублируйте цель, щелкнув по ней правой кнопкой мыши и выбрав Дублировать. Расположите цели вокруг экрана.

Шаг 5: Обработка столкновений

Нам нужно разобраться с тем, что происходит, когда пушечное ядро ​​попадает в цель. Создайте скрипт под названием "Target", чтобы управлять этим:

  1. Щелкните правой кнопкой мыши папку Assets, выберите Create -> C# Script и назовите ее "Target".
  2. Дважды щелкните сценарий, чтобы открыть его в редакторе кода.
// Target.cs
using UnityEngine;

public class Target : MonoBehaviour
{
    void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.CompareTag("Cannonball"))
        {
            Destroy(gameObject);
        }
    }
}

Прикрепите целевой сценарий ко всем целевым объектам. Убедитесь, что ваш префаб пушечного ядра имеет тег "Cannonball".

Заключение

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