Завантажити програму unity 3d на андроїд. Використання Unity для розробки програм. Як створювати ігри в Unity

Розробка ігор для пристроїв з Android OS вимагає підходу, схожого на розробку під iOS. З іншого боку, апаратне забезпечення Android-пристроїв не підпорядковується чітким стандартам, що змушує вирішувати питання, які відсутні під час роботи з iOS. Також є відмінності між версіями Unity для Android та iOS.

Підготовка середовища розробки для Android

Перш ніж ви зможете протестувати свої ігри на вашому пристрої, вам потрібно буде підготувати середовище розробки. Зокрема - завантажити та встановити Android SDK потрібної платформи та додати ваш пристрій до системи (цей процес відрізняється для Windows та Mac). Про це детально написано на сайті Android-розробників, а також додаткову інформацію може надавати виробник вашого пристрою. Так як це досить складний процес, ми приготували невелику інструкцію, яка допоможе вам підготувати все необхідне для розробки. Якщо вам знадобиться більше інформації, ви зможете отримати її на порталі Android-розробників.

Доступ до функцій Android

Unity надає API для доступу до засобів введення та налаштувань Android. Доступні класи задокументовані на сторінці Написання коду для Android збірок.

Прив'язка C, C++ або Java коду до скриптів

Unity дозволяє викликати функції, написані на C/C++ безпосередньо зі скриптів (Java-функції можуть бути викликані непрямим способом). Щоб дізнатися як з Unity отримати доступ до функцій з нативного коду, відвідайте сторінку про складання плагінів для Android .

Occlusion Culling (відсікання невидимої геометрії)

Unity надає підтримку occlusion culling, що дуже корисно під час оптимізації для мобільних платформ. Більше інформації можна знайти на сторінці Occlusion culling.

Налаштування початкової заставки

Заставка, яка відображається під час запуску гри, може бути налаштована - див. цю сторінку для додаткової інформації.

Вирішення проблем та повідомлення про помилки

Існує безліч причин, через які ваш додаток вилітає або не працює належним чином. Наш посібник з вирішення специфічних для Android проблем допоможе вам розібратися з причинами помилок у найкоротші терміни. Якщо після прочитання посібника ви припускаєте, що проблема саме в Unity - вам слід скласти повідомлення про помилку. Зверніться до цієї сторінки за інструкціями.

Як Unity для Android відрізняється від версії для настільних комп'ютерів

JavaScript зі строгою типізацією

Для покращення продуктивності в Android-версії Unity динамічна типізація JavaScript завжди відключена (якби до кожного скрипту автоматично застосовувалася #pragma strict). Це важливо пам'ятати, якщо ви переносите на Android проект зі старших платформ, і якщо ви зіткнетеся з помилками компіляції – проблему варто шукати насамперед у типізації. З такими помилками зазвичай легко впоратися, переконавшись, що типи всіх змінних явно вказані або наведені під час ініціалізації.

Хоча Unity Android і підтримує DXT/PVRTC/ATC текстури, Unity розпакує текстури у формат RGB(A) при виконанні, якщо ці методи стиснення підтримуються на конкретному пристрої. Це може серйозно вплинути на продуктивність GPU, тому рекомендується використовувати формат ETC. Він є фактичним стандартом для Android і має підтримуватися всіма сучасними пристроями. З іншого боку, ETC не підтримує альфа-канал, і іноді 16-бітові RGBA текстури будуть кращим вибором за критеріями якості, розміру та швидкості рендерингу там, де потрібний альфа-канал.

Post Views: 19 374

Ми розповідали про те, як можна за допомогою движка Unreal Engine створити свою гру на Android. У цій статті ми розглянемо інший не менш популярний двигун для розробки ігор. Unity.

Unity є дуже відомим двигуном серед інді-розробників. По суті, це кроссплатформенний двигун, який дозволяє розробляти 3D- І 2D-Ігри. Особливістю, що виділяє Unity серед інших двигунів, є низький поріг входження для новачків за наявності багатого інструментарію для професіоналів. Кросплатформенність дозволяє розробляти програми під будь-яку платформу, починаючи з десктопних ігор і закінчуючи мобільними.

Окремо варто сказати про систему передплати, оскільки Unity не є абсолютно безкоштовним продуктом. Існує кілька видів передплат:

  • Personal. Безкоштовна версія, яка містить усі основні функції движка. Має таке обмеження: дохід на рік або обсяг залучених коштів не повинен перевищувати 100000$ .
  • Plus. За 35 доларів на місяцьнадаються різні звіти та аналітика, а також можливість змінювати заставний екран, 20% -ая знижка на покупки в Asset Storeта різні дрібні переваги. Має таке обмеження: дохід за рік або обсяг залучених коштів не повинен перевищувати 200000$ .
  • Pro. За 125 доларів на місяцьвключає всі переваги версії Plusта додатково професійний сервіс та преміум-підтримку. Без обмежень щодо обороту чи обсягу коштів.
  • Окремі версії для бізнесу (використовуються великими компаніями).

Таким чином, інді-розробникам з малими бюджетами має бути достатньо версії Personalабо Plus, в іншому випадку доведеться оформлювати передплату Pro. У цій статті скористаємося безкоштовною версієюдля першого запуску.

Крок 1. Встановлення Unity

Для того, щоб розпочати встановлення Unity, потрібно перейти на сайт Unity Store, де буде запропоновано вибрати тип передплати. Як уже говорилося вище, виберемо Personal.

Потім буде запропоновано прийняти умови використання та завантажити інсталятор. Також можна ознайомитись з системними вимогамидля роботи з Unity

Після запуску інсталятора буде запропоновано вибрати, які компоненти необхідно встановити. Оскільки нам потрібно створити програму під Android, поставимо прапорець на Android Build Support. Також за бажання замість з Unity можна встановити Visual Studio Community 2017для програмування на C#.

Після цього залишиться лише вибрати шлях установки та розпочати інсталяцію Unity.

Крок 2. Реєстрація та налаштування Unity

Закінчивши інсталяцію та запустивши Unity, нам пропонується увійти під своїм акаунтом.

Потім знову буде запропоновано вибрати передплату, все також зупинимося на Personal. В цьому випадку потрібно буде підтвердити, що річний дохід компанії становить менше 100000 $, або що Unity використовується з метою навчання.

Наприкінці пропонується пройти маленьке опитування, в якому потрібно відповісти, чим ви займаєтесь і з якою метою встановлюєте Unity.

Крок 3. Створення нового проекту

Налаштувавши Unity, ми потрапляємо на екран вибору\створення проекту. Тут потрібно натиснути New, щоб створити свій новий проект.

Після цього у вікні пропонується ввести назву проекту і директорію, де він буде розташований. Також не забудьте поставити прапорець на 3D, щоб використовувати редактор у режимі 3D.

Закінчивши з цим, натисніть Create project, щоб створити проект. Після цього відкриється вікно редактора із заздалегідь згенерованою сценою.

Не будемо поки що розбиратися з тонкощами програмування та візьмемо для прикладу готову гру. Для цього тут існує Asset Store, Що містить величезну кількість готових моделей, анімацій, звуків (і навіть ігор), як платних, так і безкоштовних.

Щоб відкрити Asset Store, потрібно в меню Windowвибрати Asset Store(Комбінація клавіш Ctrl-9).

Відкриється вікно магазину. Введемо у рядку пошуку " flappy bird style example gameі відкриємо безкоштовний приклад, який ми будемо використовувати у своєму проекті.

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

Погодившись на імпорт, ви побачите вікно, де потрібно вибрати, які компоненти імпортувати. Вибираємо все та натискаємо Import.

Після завершення імпорту в браузері проекту ви побачите нові файли. Це є файли гри. Щоб відкрити сцену в редакторі, розкрийте Flappy Bird Style - Scenesі двічі клацніть по Main.

В результаті у вікні 3D-редактора з'явиться сцена гри.

Ви можете перевірити, як гра працює, прямо в Unity, натиснувши кнопку Playнад вікном редактора.

Крок 4. Налаштування інструментів Android

Примітка:якщо ви користуєтеся Android Studio, то у вас вже встановлені всі необхідні компонентиі тому можна сміливо переходити до наступного кроку.

Для того, щоб зібрати гру на Android, потрібно встановити наступні інструменти:

  • Java Development Kit (JDK).Завантажити його можна з сайту Java. Перейшовши за посиланням, ви побачите на самому верху Java Platform (JDK), клацніть по Downloadпоряд із написом, потім виберіть вашу операційну систему і почніть скачування. Після цього просто дотримуйтесь інструкцій інсталятора.
  • Android SDK. Самим простим способомвстановити актуальну версію є завантаження Android Studio, з яким цей SDK поставляється. Для цього потрібно перейти на сайт Android Studio та натиснути Download Android Studio. Інсталятор Android Studio встановити базові компоненти Android SDK, необхідні для розробки на Android.

Крок 5. Підготовка проекту для запуску

Для початку необхідно змінити платформу розробки на Android. Для цього в Unity відкрийте меню File та виберіть Build Settings.

У вікні потрібно вибрати Androidа потім натиснути Switch platform.

Перемикання платформи повідомляє, що ми будемо збирати програму для Android. Це означає, що коли ми будемо збирати програму, Unity буде створювати APK-файл. Перемикання платформи також змушує Unity імпортувати всі ассети проект заново. Це не займе багато часу на невеликому проекті, але майте на увазі, що у великих проектах ця операція може тривати тривалий час.

Тепер нам потрібно вказати ім'я пакета для програми.

Примітка:Ім'я пакета - це унікальний ідентифікатор програми, він пишеться у стилі зворотного DNS у форматі com.CompanyName.ProductName. Після публікації програми Google Play ім'я пакета вже не можна буде змінити.

Для цього перейдемо в меню Editі виберемо Project Settings - Player.

У правій частині Unity відкриється вікно з безліччю різних налаштувань, таких як версія програми, цільовий та мінімальний SDK, вибір іконки тощо. Тут нам потрібно у блоці Other Settingsзнайти Identificationі встановити ім'я пакета в полі Package Name. За бажанням можна також змінити інші параметри.

Тепер залишилося лише вказати шлях до Android SDK та JDK. Для цього перейдемо в меню та оберемо Edit - Preferences.

У вікні потрібно перейти в External Toolsта в полях SDKі JDKвказати відповідні шляхи, після чого закрити вікно.

Крок 6. Складання та запуск програми

Настав час зібрати свій перший додаток на Unity. Для цього потрібно в меню вибрати File - Build Settings. Відкриється вікно, в ньому потрібно додати сцену, яку потрібно зібрати. Оскільки у нас цю сцену вже відкрито в редакторі, досить просто натиснути Add Open Scenes, щоб додати її до складання, після додавання ви побачите її у списку сцен.

Залишилося тільки натиснути Build, після чого Unity приступить до складання програми. Перед цим вам може бути запропоновано вибрати папку, куди зберігатимуться зібрані файли програм, а також ім'я файлу APK.

Примітка:на даний момент, якщо у вас в Android SDK встановлена ​​альфа-версія Build-Tools(версія 28.0.0-rc1), при складанні Gradle видасть помилку. Щоб виправити це, просто видаліть з Android SDK цю версію.

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

Подивимося, що всередині зібраного APK. Для цього скористаємося утилітою APK Analyzerяка входить до складу Android Studio,

Розмір APK-файлу в стиснутому вигляді складає 21,1 MB, у стислому ж 20,9 MB. Як можна побачити з графіка, більшу частину обсягу займають сторонні бібліотеки, додані Unity. Потім у assetsрозташовані всі ресурси, що використовуються у зібраній сцені. Файл classes.dexмістить всього 89 класів та 479 методів.

Крім того, якщо заглянути в AndroidManifest.xml, Додаток складається з однієї активності.

Висновок

На цьому все. У цій статті ми навчилися встановлювати та налаштовувати Unity, а також зібрали свій перший додаток на Android.

Unity - це двигун, на якому будується більша частина сучасних ігорна різних платформах. За допомогою движка можна створювати ігри, спрямовані на запуск на комп'ютерах (Windows, Linux, MacOS), мобільних телефонах, планшетних комп'ютерах (Android, iOS) і навіть ігрових приставках PlayStation, Xbox, Nintendo.

Як створювати ігри в Unity?

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

Початківців може ввести в оману видима простота процесу, хоча це не так. Для створення унікальної та популярної гри доведеться з нуля писати масу компонентів. Якщо точніше, серед Юніті це називається скриптом. Рідна мова створення скриптів – C#, але ще частково використовується JavaScript та Boo (обрізаний варіант Python). Створити власні компоненти нелегко, можна сказати - це складна процедура, безпосередньо зав'язана на класичному програмуванні. Без наявності достатнього рівня знань у програмуванні доведеться несолодко.

Підтримувані платформи

Багато великих проектів віддають перевагу Unity через величезний список платформ сумісних з двигуном. Готовий додаток реально запустити на будь-якій комп'ютерній операційній системі, популярних мобільних платформах та SmartTV. Що вже казати, навіть браузерні ігри та програми для специфічних платформ ( на кшталт Tizen OS) переважно розробляються на Юніті.

Однак тут не все так гладко. При необхідності можна писати специфічні алгоритми, засновані на низькорівневому коді, під той самий Android потрібно мати досконалі знання Java.

Те саме справедливо і щодо iOS. Ще одна особливість iOS, що під неї розробляти можна тільки з комп'ютера або планшета від Apple. За відсутності Macbook або аналогічного пристрою випуск гри швидко зупиниться і Unity тут зовсім не до того, Apple сама накладає подібне обмеження. Висновок простий: якщо в планах є iOS-розробка, заздалегідь слід підібрати потрібний пристрій для збирання.

Як і де розробити гру на движку?

Тривалий процес розробки ігор можемо проводити як у рамках Windows, так і Mac OS X. Вже існують версії редактора під Linux, але розраховувати на стабільну роботу поки що не доводиться. Більшість часу зі створення гри розробник проводить усередині редактора Unity. Ще доводиться багато часу писати код скриптів, його можемо створювати або в стандартному MonoDevelop, або в будь-якому редакторі стороннього розробника. Зараз активно користуються Visual Studio, а також Sublime Text, але тільки при належному налаштуванні.

Розробка мобільних додатківє одним із найприбутковіших занять у комп'ютерній індустрії. Створення гри на Android обходиться в кілька сотень чи тисяч доларів, а прибуток може сягати й мільйона доларів. У зв'язку з цим багато людей цікавиться розробкою програм на телефон. У цій статті ви дізнаєтеся про те, як створити гру на андроїд з нуля через комп'ютер, який двигун і конструктор краще вибрати.

Жодна успішна гране обходиться без красивої графіки, тому створення дизайну – один із найважливіших етапів розробки. Дизайн на ОС Android реалізується за допомогою "дизайн-документа" або диздока. Почати створення іграшки потрібно саме з його детального опрацювання. У файлі міститься:

  1. Об'єктні моделі;
  2. функціональні специфікації;
  3. Ігровий контент;
  4. Інтерфейс.

Розглянемо кожен із пунктів докладніше.

Об'єктні моделі

Це інформація про функціонал кожного предмета. Об'єктні моделі відповідають за можливість купівлі та продажу предметів, а також покращення ігрових характеристик персонажів.

Функціональні специфікації

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

Ігровий контент

Це текстове начиння гри. Тут описуються діалоги персонажів і те, з якої зброї можна завдавати шкоди, скільки здоров'я буде забирати попадання, які характеристики збільшуватимуться при використанні різного спорядження. Також тут міститься докладний опискожного предмета.

Інтерфейс

Інтерфейс – це те, як користувач взаємодіятиме з грою. Він включає кнопки, за допомогою яких можна керувати персонажем, і розділи меню: наприклад, грати, рахунок, налаштування, топ гравців, довідка. Якщо ви не маєте досвіду у створенні додатків на Андроїд, перед створенням власного скачайте з Плей Маркета та проаналізуйте популярні ігрита перенесіть найкращі рішення у свій проект.

Ігровий двигун

Основою будь-якої гри є двигун. Це програмне забезпечення, що дозволяє розробляти та запускати її. Він містить цілий комплекс програм, що включає двигун рендерингу, фізичний двигун, звук, анімацію та багато іншого. Щоб полегшити процес написання програм, сторонні розробники створюють власні ігрові движки спеціально для Android-додатків.

Кожен пропонує різні функції: деякі розроблені для 3D, інші для 2D, може підтримуватися мультиплатформенність. Таких двигунів є безліч, але, якщо ви новачок, краще вибрати один з найпопулярніших, тому що там будуть присутні всі необхідні функції.

UDK

Torque 2d/3d

Що таке конструктор ігор?

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

Конструктор дозволяє створювати ігри різних жанрів для Windows, Android та iOS. Пропонує великий вибірготових локацій, об'єктів, персонажів та звукових оформлень, тому створення першої Андроїд-гри не займе багато часу. Користувачі, які знайомі з мовами програмування JS та C++, можуть використовувати вбудований GML. Єдиний недолік полягає в тому, що програма не перекладена російською мовою.

Висновок

Створення гри на Андроїд - не зовсім проста, але дуже прибуткова справа. Якщо ви вирішили розробити гру та заробляти на ній, спочатку опрацюйте ідею. Далі напишіть «дизайн-документ» і визначтеся з ігровим двигуном, який зможе максимально розкрити її потенціал. Після цього можна приступати безпосередньо до створення програми в конструкторі.

Відео

Щоб детальніше ознайомитись з процесом створення Андроїд-ігор, ознайомтеся із серією відеороликів, присвячених цьому занять.

Як швидко написати гру для Android на Unity

Нині кожен може стати успішним розробником мобільних ігор або програм, не докладаючи до цього титанічних зусиль. Прикладом такого випадку є Донг Нгуєн, який розробив Flappy Bird. У грі не було жодної складної механіки чи графіки, але це не завадило їй стати популярною та приносити своєму творцю по п'ятдесят тисяч доларів на день. Однак у грі не було нічого примітного. Все, що знадобилося для успіху - опинитися в потрібному місці в потрібний час і трохи удачі. Таке може статися і сьогодні, вам просто потрібна правильна ідея.

Щоб продемонструвати, як легко написати щось подібне, сьогодні ми напишемо свій Flappy Bird за допомогою Unity всього за 10 хвилин.

Ігровий персонаж

Спочатку створіть новий проект і переконайтеся, що вибрано 2D.

Завантажте свій спрайт птахів у сцену. Не забудьте увімкнути фантазію!

Потім відрегулюйте розмір спрайту, як вам подобається, перетягуючи його за кут у потрібному напрямку. Спрайт має бути видно у вікні ієрархії (hierarchy) зліва. У ньому видно всі об'єкти в сцені, і на даний момент їх має бути всього два: камера та птах.

Перетягніть камеру на птаха і відпустіть. Камера повинна опинитися під птахом, це означатиме, що камера тепер «дитина» птаха. Тепер позиція камери фіксуватиметься щодо птиці. Якщо птах рухається вперед, то камера робить те саме.

Знову виберіть птаха у сцені або у вікні ієрархії. Ви побачите список опцій та атрибутів праворуч у вікні під назвою Inspector. Тут можна керувати різними змінними, прив'язаними до певного об'єкту.

Тепер натисніть на Add Component. Виберіть Physics2D > Rigidbody2D - це готовий набірінструкцій до застосування гравітації до нашого персонажа. Натисніть Constraints в цій панелі і виберіть freeze rotation Z . Це дозволить запобігти обертанню птиці разом з камерою по колу.

Так само додайте Polygon Collider , який говорить Unity, де знаходяться межі персонажа. Натисніть Play та побачите, як спрайт разом з камерою нескінченно падає вниз.

Поки що все йде добре!

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

Спочатку потрібно створити C#-скрипт. Створіть для нього папку (клацніть правою кнопкою миші десь в assets і створіть папку "Scripts"), зробіть клік правою кнопкою миші та виберіть Create > C# Script .

Назвемо його Character. Клацніть по ньому двічі, щоб відкрити його у вашій IDE, будь то MonoDevelop або Visual Studio. Потім додайте наступний код:

Public class Character: MonoBehaviour (public Rigidbody2D rb; public float moveSpeed; public float flapHeight; // Це потрібно для ініціалізації void Start() (rb = GetComponent();) // Update викликається один раз на кадр void Update() ( .velocity = new Vector2(moveSpeed, rb.velocity.y);if (Input.GetMouseButtonDown(0)) 18 ||transform.position.y< -19) { Death(); } } public void Death() { rb.velocity = Vector3.zero; transform.position = new Vector2(0, 0); } }

Цей код робить дві речі. Він змушує персонажа рухатися вперед зі швидкістю, яку ми визначимо в інспекторі, та створює відчуття польоту птаха. Метод Update() викликається повторно протягом гри, тому все, що ви помістите сюди, буде виконуватися безперервно. У цьому випадку ми додаємо трохи швидкості нашому об'єкту. Змінна rb є скриптом RigidBody2D, який ми застосували до нашого об'єкта раніше, тому коли ми пишемо rb.velocity, ми звертаємося до швидкості об'єкта.

Тап по екрану інтерпретується Unity як клік миші, якщо ви використовуєте мобільний пристрій. Після натискання ми змушуємо персонажа трохи піднятися нагору.

Змінна передачаSpeed ​​буде відповідати за швидкість руху, а змінна flapHeight - за збільшення висоти польоту птиці після кожного натискання. Оскільки ці змінні оголошені як public, ми зможемо змінити їх поза скриптом.

Метод Death() також оголошений як public , що означає, що інші об'єкти та скрипти зможуть його викликати. Цей метод просто повертає становище персонажа на початок. Також він буде використовуватися щоразу, коли персонаж залітатиме надто високо або низько. Незабаром ви зрозумієте, чому він оголошений саме як public. Рядок rb.velocity = Vector3.zero; потрібна, щоб усунути імпульс - ми ж не хочемо, щоб після кожної смерті персонаж падав все швидше і швидше?

Тепер можна виходити з IDE та додавати скрипт як компонент до персонажа. Для цього потрібно вибрати нашого птаха і натиснути Add Component > Scripts > Character. Тепер ми можемо визначати moveSpeed ​​і flapHeight в інспекторі (для цього і потрібні public-змінні). Привласним змінним значення 3 та 5 відповідно.

І ще: в інспекторі слід додати тег до персонажа. Для цього клацніть там, де написано Tag: Untagged і потім виберіть Player у списку, що випадає.

Перешкоди

Тепер додамо перешкоди: труби. Хтось у трубах знаходить гриби, а хтось – свою смерть.

Перетягніть спрайт труби в сцену в місце, де має бути перша перешкода, і назвіть pipe_up .
Тепер створимо новий скрипт під назвою Pipe:

Public class Pipe: MonoBehaviour ( private Character character; // Це потрібно для ініціалізації void Start () ( character = FindObjectOfType(); ) // Update викликається один раз на кадр void Update () ( if (character.transform.position.x) - transform.position.x >

Додайте цей скрипт до спрайту труби так само, як і раніше. Таким чином, труба повертатиметься на екран після виходу за його ліву межу. Ми ще нічого не зробили, але ще повернемося до цього.

Метод OnCollisionEnter2D() викликається щоразу при взаємодії труби з персонажем. Після цього викликається створений раніше метод Death(), що повертає гравця до початкової точки.

Отже, у нас є одна труба, яка час від часу зникатиме і з'являтиметься на іншому кінці екрану. Вріжешся в неї - помреш.

Перевернуті труби

Зараз у нас є лише один спрайт труби. Давайте додамо ще одну. Для цього клацніть правою кнопкою миші у вікні ієрархії, натисніть New 2D Object > Sprite і виберіть спрайт, який хочете використовувати. Ще простіше просто перетягнути файл у сцену ще раз.

Назвіть цей спрайт pipe_down. В інспекторі в частині Sprite Renderer виберіть опцію Flip Y, щоб перевернути трубу догори ногами. Додайте таке ж RigidBody2D.

Тепер напишемо новий C#-скрипт під назвою PipeD. У ньому буде схожий код:

Public class PipeD: MonoBehaviour (private Character character; //Це потрібно для ініціалізації void Start() ( character = FindObjectOfType(); ) // Update викликається один раз на кадр void Update() ( if (character.transform.position.x) - transform.position.x > 30) ( ) ) void OnCollisionEnter2D(Collision2D other) ( if (other.gameObject.tag == "Player") ( character.Death(); ) ) )

Префаби

Отже, нам достатньо цього коду, щоби зробити всю гру. Ми могли б пересунути труби на правий бік екрану кожен раз, коли вони зникають, або скопіювати і вставити стільки труб, скільки ми хотіли б зустріти протягом всієї гри.

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

Якщо піти другим шляхом, все закінчиться зайвим споживанням пам'яті, з уповільненням гри, і з обмеженою реграбельностью, т.к. все стоїть на тих самих місцях щоразу.

Натомість давайте скористаємося префабами. Якщо говорити просто, ми перетворимо наші труби на шаблони, які потім зможемо використовувати для ефективного створення більшої кількості труб за бажанням. Якщо є програмісти, то вважайте скрипт Pipe класом, а труби - екземплярами цього об'єкта.

Для цього створіть нову папку Prefabs. Потім перетягніть pipe_up та pipe_down з вікна ієрархії в папку.

Щоразу, коли ви перетягуєте об'єкт із цієї папки в сцену, у нього будуть ті самі властивості, тому вам не потрібно буде постійно додавати компоненти. Більше того, якщо ви зміните розмір компонента в папці, це вплине на всі труби у грі, і вам не доведеться змінювати кожну з них окремо.

Як ви розумієте, це сильно заощадить наші ресурси. Також це означає, що ми можемо взаємодіяти з об'єктами коду. Ми можемо створювати екземпляри наших труб.

Спочатку додайте цей код до умовного виразу в методі Update() скрипта Pipe , який ми залишили порожнім:

Void Update () ( if (character.transform.position.x - transform.position.x > 30) ( float xRan = Random.Range(0, 10); float yRan = Random.Range(-5, 5); Instantiate (gameObject, новий Vector2(character.transform.position.x + 15 + xRan, -10 + yRan), transform.rotation); Destroy(gameObject); ) )

Це потрібно для створення екземпляра нашого gameObject. В результаті виходить нова ідентична копія. У Unity завжди, коли ви використовуєте слово gameObject, воно посилається на об'єкт, до якого скрипт в даний момент прив'язаний - у нашому випадку до труби.

Ми генеруємо заново наші труби у випадкових варіаціях, щоб було веселіше.

Але замість того, щоб робити все те ж у скрипті PipeD, ми генеруємо обидва об'єкти в одному місці. Таким чином, ми можемо легко встановлювати положення другої труби щодо першої. Також це означає, що нам потрібно менше коду для PipeD.

Створіть public gameObject з ім'ям pipeDown. Потім оновіть код у такий спосіб:

If (character.transform.position.x - transform.position.x > 30) ( float xRan = Random.Range(0, 10); float yRan = Random.Range(-5, 5); float gapRan = Random.Range (0, 3); + 15 + xRan, 12 + gapRan + yRan), transform.rotation);Destroy(gameObject);

Повертаємося назад у Unity і перетягуємо префаб pipe_down з папки з префабами (це важливо!) у місце, де написано «Pipe Down» (зауважте, як наш camel case замінюється пробілом) на спрайт труби pipe up . Якщо ви пам'ятаєте, ми визначили Pipe Down як public gameObject, що дає нам можливість визначати, чим є об'єкт звідки завгодно – в даному випадку через інспектор. Вибираючи префаб для цього об'єкта, ми переконуємося, що при створенні екземпляра труби він буде включати всі атрибути і скрипт, які ми додали раніше. Ми не просто створюємо спрайт, але перестворюємо об'єкт із колайдером, який може вбити персонажа.

Все, що ми додамо в те саме місце в скрипті PipeD - просто Destroy (gameObject), щоб труба саморуйнувалася при виході за ліву межу екрана.

Якщо ви зараз запустите гру, то екран буде просуватися далі автоматично, і ви помрете, якщо зіткнетеся з будь-якою трубою. Пролетіть досить далеко, і ці труби зникнуть і знову з'являться попереду.

На жаль, між трубами велика відстань і екран виглядає порожнім. Ми могли б виправити це, додавши кілька префабів в нашу сцену, щоб створити конвеєр труб, що постійно з'являються. Однак краще було б генерувати труби в скрипті. Це важливо, тому що інакше після смерті персонажа труби на початку шляху знищаться, і знову утворюється порожній простір.

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

Нескінченний політ

Тепер створимо public-змінні pipe_up та pipe_down у скрипті Character. Це дасть вам можливість посилатися на створені об'єкти, перетягуючи префаби на об'єкт персонажа, як коли ми додали pipe_down в скрипт Pipe .

Нам потрібно додати ці змінні:

Public GameObject pipe_up; public GameObject pipe_down;

Потім ми напишемо такий метод:

Public void BuildLevel() ( Instantiate(pipe_down, новий Vector3(14, 12), transform.rotation); Instantiate(pipe_up, новий Vector3(14, -11), transform.rotation); Instantiate(pipe_down, новий Vector3(26, 14), transform.rotation), Instantiate(pipe_up, новий Vector3(26, -10), transform.rotation); 38, -14), transform.rotation), Instantiate(pipe_down, новий Vector3(50, 16), transform.rotation); новий Vector3(61, 11), transform.rotation);

Ми будемо викликати його один раз у методі Update() і один раз у методі Death() .

Після початку гри викликається Update() і наші труби ставляться відповідно до заданої конфігурації. За рахунок цього перші кілька перешкод завжди стоятимуть на тому самому місці. Після смерті гравця труби стануть на ті самі місця.

Поверніться в сцену в Unity і видаліть дві труби, які зараз знаходяться. Ваша «гра» виглядатиме просто як порожній екран із птахом. Натисніть Play і труби з'являться, після перших кількох їх положення буде визначатися випадковим чином.

На закінчення

Ось ми й зробили цілу гру! Додайте лічильник очок, спробуйте зробити його оригінальнішим і збільшуйте складність гри в міру просування. Також не зайве зробити меню. Ще гарною ідеєю знищуватиме труби на екрані після смерті персонажа. Як тільки ви з цим закінчите - вважайте, що готова до випуску Play Storeгра у вас у кишені! Колись схожа гразробила іншого розробника дуже багатим, і це доводить, що вам не потрібно бути генієм-програмістом або мати за своєю спиною багатого видавця, щоб досягти успіху. Вам просто потрібна гарна ідея та десять хвилин!

Хочете писати програми під Android, але не знаєте, з чого почати? Тоді ознайомтеся з нашою великою для вивчення Android-розробки.



 
Статті потемі:
Все, що вам потрібно знати про SD-карти пам'яті, щоб не облажатись при покупці Підключаємо sd
(4 оцінок) Якщо на вашому пристрої недостатній обсяг внутрішньої пам'яті, можна використовувати SD-карту як внутрішнє сховище для телефону Android. Ця функція, звана Adoptable Storage, дозволяє ОС Андроїд форматувати зовнішній носій
Як повернути колеса в GTA Online і багато іншого в FAQ з GTA Online
Чому не підключається gta online? Все просто, сервер тимчасово вимкнений/неактивний або не працює. Як відключити онлайн ігри в браузері. Як вимкнути запуск Online Update Clinet у Connect manager? ... На сккоко я знаю коли ти розум
Туз пік у поєднанні з іншими картами
Найпоширенішими трактуваннями карти є: обіцянка приємного знайомства, несподіваної радості, емоцій і відчуттів, що раніше не відчуваються, отримання презенту, візит до сімейної пари. Туз хробаків, значення карти при характеристиці конкретної особистості
Як правильно побудувати гороскоп релокації Скласти карту за датою народження з розшифровкою
Натальна карта говорить про вроджені якості та здібності її власника, локальна - про місцеві обставини, ініційовані місцем дії. Вони рівні за значимістю, бо життя багатьох людей минає далеко від місця їх народження. Локальну карту слідує