Найти в Дзене
Dull

Моя первая (не) игра на Unity

Создание своей первой игры — это всегда захватывающий и увлекательный процесс! В этой статье я поделюсь своим опытом разработки простой игры на Unity, где главный герой — круг, который собирает монетки. Но будьте осторожны: если его поймают, игрок проиграет! Основная идея игры проста: игрок управляет кругом, который должен собирать разбросанные по игровому полю монетки. Но на его пути стоят враги, которые пытаются поймать его. Если враг коснется круга, игра закончится, и игрок проиграет. Эта простая концепция позволяет сосредоточиться на основных механиках игрового процесса и научиться работать с Unity. Первым делом я создал новый проект в Unity и выбрал 2D-шаблон. Это идеально подходит для нашей игры, так как мы будем работать с простыми формами и спрайтами. Чтобы сделать игру более интересной, я добавил монетки, которые круг будет собирать: using UnityEngine;
public class Coin : MonoBehaviour
{
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.Com
Оглавление

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

Идея игры

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

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

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

Создание сцены

  1. Создание игрового поля: Я добавил пустой объект, который будет служить игровым полем. Можно использовать Sprite Renderer, чтобы добавить фон.
  2. Создание круга: Я создал новый спрайт для круга и добавил его на сцену. Это будет наш главный персонаж, которым будет управлять игрок.

Шаг 2: Добавление монеток

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

  1. Создание спрайта монетки: Я нарисовал простой спрайт монетки и добавил его на сцену.
  2. Скрипт для монеток: Я создал скрипт, который будет отвечать за поведение монеток. Когда круг соприкасается с монеткой, монетка исчезает, а игрок получает очки.

using UnityEngine;

public class Coin : MonoBehaviour
{
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.CompareTag("Player"))
{
// Увеличить счет игрока
GameManager.Instance.AddScore(1);
// Удалить монетку
Destroy(gameObject);
}
}
}

Шаг 3: Добавление врагов

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

  1. Создание врагов: Я создал спрайт для врага и добавил его на сцену.
  2. Скрипт для врагов: Я написал скрипт, который заставляет врагов двигаться к кругу. Если враг касается круга, игра заканчивается.

using UnityEngine;

public class Enemy : MonoBehaviour
{
public float speed = 2f;

private Transform player;

private void Start()
{
player = GameObject.FindGameObjectWithTag("Player").transform;
}

private void Update()
{
Vector3 direction = (player.position - transform.position).normalized;
transform.position += direction * speed * Time.deltaTime;
}

private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.CompareTag("Player"))
{
// Вызвать метод окончания игры
GameManager.Instance.GameOver();
}
}
}Найти еще

-2

Шаг 4: Управление игроком

Теперь пришло время добавить управление для нашего круга:

  1. Скрипт управления: Я создал скрипт, который позволяет игроку управлять кругом с помощью клавиш стрелок или WASD.

using UnityEngine;

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

private void Update()
{
float moveX = Input.GetAxis("Horizontal");
float moveY = Input.GetAxis("Vertical");
Vector3 move = new Vector3(moveX, moveY, 0).normalized;
transform.position += move * moveSpeed * Time.deltaTime;
}
}

Шаг 5: Завершение игры

Для завершения игры я создал класс GameManager, который будет отслеживать счет и состояние игры. Когда игрок проигрывает, я показываю экран "Ты проиграл. Хе-хе"

-3

Кому хочется немного поиграть, то она находится в бесплатном доступе: https://boosty.to/dimasliva/posts/80dbd4b0-c95f-4cf5-9918-150053ce0e6f?share=post_link