Проста двомірна іграшка скроллер - nullcode studio, ігри, unity, скрипти

Сьогодні будемо робити що-небудь легке. Що відмінно підійде початківцям, оскільки принцип гри простий, коду мало, нескладно розібратися і редагувати. А саме, скроллер, де екран буде рухатися постійно в одну сторону, конкретніше кажучи, знизу і догори. Але насправді тут є невелика хитрість, сам екран нікуди не рухається, переміщаються самі об'єкти і таким чином створюється ілюзія руху. Ігровий процес в такий. Гравець управляє персонажем, який може рухатися тільки вліво або вправо. Внизу в випадкових місцях з'являються блоки і рухаються вгору. На самому верху смертельні шипи, тому гравцеві треба встигати стрибати з блоку на блок, і спускатися вниз.

Проста двомірна іграшка скроллер - nullcode studio, ігри, unity, скрипти


Створюємо новий 2D проект і приступимо. Для початку створимо керуючий скрипт, якої контролює ігровий процес, генерує блоки та інше. Отже, скрипт Game. вішаємо на порожній об'єкт:


player - префаб персонажа.

gameSpeed ​​- швидкість з корою будуть рухатися блоки.

block - префаб основного блоку.

blockAlert - префаб блоку-пастки.

timeoutMin і timeoutMax - мінімальне і відповідно максимальне, значення часу очікування появи нових блоків.

offset - максимальне зміщення по Х і стартове по Y. для блоків.

gameOverMenu - менюшка, яка буде з'являться після програшу.

Меню GameOver як мінімум має містити дві кнопки, для виходу з гри і рестарту поточної сцени. Робити звичайно ж будемо з допомогою UI об'єктів. Просто додати пару Button і вказати для них відповідні функції, для кнопки виходу це Exit (). а для кнопки перезапуску це Restart (). Додаємо кнопок нову подію, перетягуємо в поле обробника, об'єкт зі скриптом, і в списку вибираємо функції:


Після, збираємо кнопки в групу і вказуємо отримані меню в скрипті.

Тепер зберемо префаб персонажа. Додамо на спрайт Circle Collider 2D і скрипт Player:


Скрипт дуже простий. Є функція відображення по горизонталі, щоб повертати "особа" спрайту в потрібну сторону. Відстежується зіткнення з треггером, для визначення програшу. Крім того, є функція OnBecameInvisible. яка спрацює якщо об'єкт виявиться за межами екрану.

Створення блоку. Тут може бути одна проблема, справа в тому що при використанні коллайдера боксового типу, наш персонаж буде чіплятися за кути і краю платформи. Тому ми скористаємося можливостями движка Unity і зробимо блок наступним чином. Перше, додаємо на спрайт блоку Box Collider 2D і ставимо галочку Used by Effector і відразу додамо ефектор Platform Effector 2D з настройками за замовчуванням:

Проста двомірна іграшка скроллер - nullcode studio, ігри, unity, скрипти


Чим допоможе ефектор? Він зробить так щоб об'єкти не чіплялися за краї блоку і його кути, додає ковзання. Штука вкрай зручна.

На блок вішаємо скрипт Block:


Тут забезпечується рух блоку. Плюс, коду гравець потрапить на платформу, то він стає дочірнім до неї, це потрібно для того, щоб дати можливість нормально рухатися гравцеві в межах блоку. І функцію знищення платформу, після того, як вона пропадає з поля зору.

Префаб блоку-пастки полягає також з вище наведеного скрипта і одного коллайдера в режимі тригера, тег об'єкта вказуємо Finish. Верхні шипи теж робляться з тригера з таким-же тегом, але вже без скрипт зрозуміло, так як це статичний об'єкт.

В цілому, власне і все. Не дивлячись на простоту, при належному вмінні і деякої фантазії, можна зробити непоганий скроллер. Додати більше блоків, більше пасток, бонусів, зміна швидкості, гра на час і т.п. і т.д.

Завантажити проект по темі:

Ви не можете завантажувати файли з нашого сервера