Блог онлайн школы Пиксель

Как сделать Flappy Bird на Unity (Юнити)

Привет, друзья! Школа программирования для детей PIXEL подготовила новый урок о том, как сделать простую 2D-игру на Юнити. В этом уроке по Unity мы создадим мини-проект FlappyBird. В процессе мы разберем механизм создания такой игры и напишем небольшой скрипт.

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

Нам понадобятся три спрайта, спрайт персонажа, спрайт башни (препятствие), фон. Вы можете воспользоваться нашими материалами.

Перемещаем фон на сцену и масштабируем. Далее добавляем персонажа, на него — коллайдер и RigidBody. Добавляем башню, масштабируем ее и добавляем коллайдер. Дублируем башню один раз с помощью клавиш CTRL+ D и в инспекторе в поле Rotation по Z пишем 180. Перемещаем башню вверх. Теперь создаем пустой объект и на него в иерархии перемещаем две башни, чтобы они стали дочерними. Называем главный объект башни Block. Теперь можем дублировать блок и расставить их по сцене.


Создаем скрипт.

Создаем функцию и в ней прикладываем силу по Х (значение можно увеличить после тестов), что задает движение вперед. И прикладываем силу вверх.


В Update пишем условие: если нажата левая кнопка мыши, то вызываем функцию Jump.


Далее пишем метод OnTriggerEnter2D, отлавливаем соприкосновение коллайдеров. Если было соприкосновение с тегом Enemy, то перезагружаем сцену.


Переходим в Юнити, перемещаем скрипт на персонажа.

Теперь осталось добавить тег. В инспекторе нажимаем на поле тег, далее Add Tag, нажимаем на плюс, вводим Enemy, сохраняем. Назначаем тег башням.


Простой скрипт Flappy Bird на Unity 2D готов!

Полный код программы:


using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class PlayerController : MonoBehaviour
{
    void Update()
{
if (Input.GetMouseButtonDown(0))
{
Jump();
}
}

void Jump()
{
        GetComponent<Rigidbody2D>().velocity = new Vector2(1.5f, 0f);
        GetComponent<Rigidbody2D>().AddForce(Vector2.up * 200);
}

void OnTriggerEnter2D(Collider2D col) 
{
        if (col.tag == "Enemy")
        {
            SceneManager.LoadScene("SampleScene");
        }

    }
}

Если вы хотите научиться создавать более сложные игры, приходите в школу PIXEL на полный курс по Unity 3D для детей и подростков. Мы приглашаем ребят от 10 лет научиться программировать игры, писать скрипты, моделировать объекты, создавать анимацию и многое др. Присоединяйтесь, чтобы учиться под руководством опытных наставников и уже сейчас приблизиться к профессиональной Unity-разработке.

2022-04-16 09:00 Бесплатные видеоуроки Unity для детей