Найти тему
Максим Бортников

Как создать игру-кликер в Unity 2d

Простой кликер-платформер на движке Unity

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

Итак, на основе этих статей:

Unity 5. 2d Анимация

Unity 2d. Движение персонажа

и использования готовых 2d спрайтов из этой статьи

Unity 2d. Спрайты для создания игр

Мы уже подготовили готовую сцену с работоспособным персонажем
Мы уже подготовили готовую сцену с работоспособным персонажем

Ну если разобрать более детально, то :

  • на игровой объект (GameObject) помещаем компонент Sprite Renderer, где в поле Sprite помещаем нужный нам спрайт (изображение)
  • добавляем компоненты Collider 2d, Box или Circle в зависимости от строения изображения, можно несколько
  •  компонент Rigidbody 2D обязательно, так как он будет отвечать за движение персонажа
  • компонент Animator с нужной нам анимацией
  • ну и несколько скриптов, первый скрипт отвечает за перемещение персонажа по сцене

скрипт на сайте

  • Ну и второй скрипт, который будет отвечать за назначение клавиш управления персонажем

скрипт на сайте

Собственно, при наличии вышеперечисленных компонентов можно создать управляемый объект на сцене.

Далее, на создании самой сцены мы останавливаться не будем, она может выглядеть на ваш вкус и цвет, ну и если вы это читаете, то наверняка умеете переносить игровые объекты на сцену. А вот на самих игровых объектах остановимся поподробней.

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

Разместим на сцене поваленное дерево, которое помешает пройти нашему персонажу и от которого нужно избавится, как вариант — разрубить.

-2

Поместим дерево и топор, который поможет нам пройти. На них поместим объекты Box Collider2d и обработчик  Event Trigger (про это больше упоминать не будем, эти компоненты будут присутствовать на всех последующих игровых объектах )

Создадим простой скрипт, где при нажатии мышкой на объект топор он будет как-бы в руке и при нажатии мышкой на дерево мы будем проверять, если топор в руке то удаляем дерево, если нет …. то нет.

public GameObject rukaobject;

// Use this for initialization
void Start()
{

}

// Update is called once per frame
void Update()
{

}

public void OnClick()
{
if (this.gameObject.tag == "Topor")
{
rukaobject = this.gameObject;

}

if (this.gameObject.tag == "DerevoPolom")
{

if (rukaobject == GameObject.FindGameObjectWithTag("Topor"))
{
Destroy(gameObject);

}
}
}

Теперь вернемся к объектам на сцене (топор и дерево), поместим этот скрипт на них, в компоненте Event Trigger создадим новый тип Pointer Click и укажем эти объекты в этом типе (каждый в своем), так же укажем скрипт и функцию OnClick. Ну и не забудьте присвоить тэги объектам, которые указали в скрипте.

У меня немного доработано, но смысл тот же:

Подходим к дереву, но оно не дает нам пройти, нажимаем на него ничего не происходит


находи топор, берем его
находи топор, берем его
-4

и снова к дереву, дерево исчезает

-5

Первая преграда пройдена, далее реализуем столкновение персонажа с игровыми объектами, например, поместим на сцену паука и при столкновении с ним персонажа будет отбрасывать назад.

-6

Создадим еще один скрипт в котором будем использовать функцию обработки столкновений коллайдеров

private void OnTriggerEnter2D(Collider2D other)
{



if (other.tag == "Pauk")
{

this.gameObject.GetComponent().MovePosition(Vector2.left * 10 * Time.deltaTime);

}

}

Соответственно, на паука вешаем Box Collider с галочкой isTrigger и указываем тэг, который указали в скрипте.

-7

На основе функции OnClick() и OnTriggerEnter2D(Collider2D other) можно и дальше размещать объекты на сцене, которые будут преграждать путь или будут помогать персонажу пройти уровень.

Видео и полное описание урока вы можете найти на нашем сайте

На этом все, удачных проектов)!