Създаване на приложения за Android. Използване на Unity за разработване на приложения Създаване на 3d игра за android

развитие мобилни приложенияе една от най-доходоносните професии в компютърната индустрия. Създаването на игра за Android струва стотици или хиляди долари, а печалбата може да достигне до милион долара. В тази връзка много хора се интересуват от разработването на приложения за телефона. В тази статия ще научите как да създадете игра за Android от нулата с помощта на компютър, кой двигател и дизайнер е по-добре да изберете.

Нито един успешна игране може без красива графика, така че създаването на дизайн е един от най-важните етапи на развитие. Дизайнът на операционната система Android се реализира с помощта на „проектен документ“ или проектен документ. Трябва да започнете да създавате играчка с нейното подробно проучване. Файлът съдържа:

  1. Обектни модели;
  2. Функционални спецификации;
  3. Съдържание на играта;
  4. Интерфейс.

Нека разгледаме всяка от точките по-подробно.

Обектни модели

Това е информация за функционалността на всеки артикул. Обектните модели са отговорни за възможността да купувате и продавате предмети, както и за подобряване на игровите характеристики на героите.

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

Той описва геймплея, основните характеристики на всеки герой. Той също така описва характеристиките предмети за игра- оръжия, комплекти за първа помощ, броня и други. По същество функционалните спецификации са правилата, по които протича игровият процес. Колкото по-добре е разработен този раздел, толкова по-лесно ще бъде създаването на висококачествена игра за Android.

Съдържание на играта

Това е текстовото запълване на играта. Той описва диалозите на героите и какви оръжия могат да се използват за нанасяне на щети, колко здраве ще отнеме удар, какви характеристики ще се увеличат при използване на различно оборудване. Също така съдържа Подробно описаниевсеки артикул.

Интерфейс

Интерфейсът е начинът, по който потребителят ще взаимодейства с играта. Включва бутони, с които можете да контролирате героя, и секции от менюто: например игра, резултат, настройки, най-добрите играчи, помощ. Ако нямате опит в създаването на приложения за Android, преди да създадете свои собствени, изтеглете от Play Market и анализирайте популярни игри и прехвърлете най-добрите решения към вашия проект.

Игрален двигател

Ядрото на всяка игра е двигателят. Това е софтуер, който ви позволява да го разработите и стартирате. Той съдържа цяла гама от програми, включително механизъм за изобразяване, двигател за физика, звук, анимация и много други. За да улеснят процеса на писане на програми, разработчиците на трети страни създават свои собствени двигатели за игри специално за приложения за Android.

Всеки от тях предлага различни функции: някои са предназначени за 3D, други за 2D, може да се поддържа мултиплатформа. Има огромен брой такива двигатели, но ако сте начинаещ, по-добре е да изберете един от най-популярните, тъй като там ще присъстват всички необходими функции.

UDK

Въртящ момент 2d/3d

Какво е дизайнер на игри?

Constructor е програма, която съчетава двигател за игри и интегрирана среда за разработка. Конструкторът прави процеса на разработка достъпен за хора, които нямат умения за програмиране. Някои от дизайнерите ви позволяват да създавате игри от определени жанрове, други имат максимална функционалност, но струват много повече пари. За начинаещ създател на мобилни приложения изборът на дизайнер е един от най-важните моменти, тъй като от неговите възможности ще зависи съдбата на бъдещото приложение.

Конструкторът ви позволява да създавате игри от различни жанрове за Windows, Android и iOS. Оферти голям изборготови локации, обекти, герои и звуков дизайн, така че създаването на първата игра за Android няма да отнеме много време. Потребителите, запознати с езиците за програмиране JS и C++, могат да използват вградения GML. Единственият недостатък е, че програмата не е преведена на руски.

Заключение

Създаването на Android игра не е лесен, но много печеливш бизнес. Ако решите да разработите игра и да правите пари от нея, първо разработете идеята. След това напишете „проектен документ“ и вземете решение за двигател на играта, който може да увеличи максимално своя потенциал. След това можете да продължите директно към създаването на приложението в конструктора.

Видео

За да научите повече за процеса създаване на игри за android, вижте видео поредицата за тази дейност.

Unity е двигателят, на който повечето от модерни игрина различни платформи. Чрез двигателя е възможно да се създават игри, които са ориентирани да работят на компютри (Windows, Linux, MacOS), мобилни телефони, таблетни компютри (Android, iOS) и дори игрови конзоли PlayStation, Xbox, Nintendo.

Как да създавам игри в Unity?

Unity се основава на концепция, ориентирана към компоненти. Всъщност всяка игра се състои от маса обекти, разредени с допълнителни компоненти. Например, по време на създаването на платформинг, ние създаваме GameObject, допълнително прикрепяме към него графичен компонент, който отговаря за показването на героя, и контролен компонент, който осигурява контрол на героя с помощта на мишка, клавиатура, джойстик или тъч скрийн. Двигателят не налага ограничения върху броя на такива модули. Можем да добавим колкото е необходимо компоненти към GameObject. Цялата работа по двигателя се основава на самото създаване на GameObject и прилагането на подходящи компоненти към тях.

Начинаещите могат да бъдат подведени от очевидната простота на процеса, въпреки че това не е така. За да създадете уникален и популярна игратрябва да напишете много компоненти от нулата. По-конкретно, в средата на Unity това се нарича скрипт. Родният скриптов език е C#, но JavaScript и Boo (изрязана версия на Python) също се използват частично. Създаването на собствени компоненти не е лесно, дори може да се каже, че е сложна процедура, пряко свързана с класическото програмиране. Без достатъчно ниво на познания по програмиране ще е трудно.

Поддържани платформи

Много големи проекти предпочитат Unity поради огромния списък от платформи, съвместими с двигателя. Готовото приложение може да се стартира на всяка компютърна операционна система, популярни мобилни платформи и SmartTV. Какво да кажем, дори браузър игри и приложения за конкретни платформи ( като Tizen OS) са разработени предимно в Unity.

Тук обаче не всичко е толкова гладко. Ако е необходимо, можете да напишете конкретни алгоритми, базирани на код от ниско ниво, за същия Android трябва да имате задълбочени познания по Java.

Същото важи и за iOS. Друг Функция на iOSче е възможно да се разработи за него само от компютър или таблет от Apple. При липса на Macbook или подобно устройство, пускането на играта бързо ще спре и Unity няма нищо общо с това, самата Apple налага подобно ограничение. Изводът е прост: ако в плановете има разработка на iOS, трябва предварително да изберете подходящо устройство за сглобяване.

Как и къде да разработите игра на двигателя?

Можем да извършим дълъг процес на разработка на игри както в Windows, така и в Mac OS X. Вече има версии на редактора за Linux, но засега не можем да разчитаме на тяхната стабилна работа. Разработчикът прекарва по-голямата част от времето, създавайки игра в редактора на Unity. Все още имаме много време да напишем код на скрипт, можем да го създадем или в стандартния MonoDevelop, или във всеки редактор на трета страна. Сега те активно използват Visual Studio, както и Sublime Text, но само с правилна конфигурация.

Здравейте всички! След като се научих как да правя игри на този двигател, искам да ви науча на същото. Първо, имаме нужда от самия Unity3d, всеки редактор на 3D модел и прави ръце, израстващи от раменете.

1. Разучаване на програмата

Като за начало препоръчвам да инсталирате Monodevelop! Нека разберем какво е Единство. Unity е мултиплатформена среда за разработка на игри. Именно заради нейната простота и разбираемост всеки трети поне веднъж е правил игри на нея.

Помислете за екранната снимка по-горе:

  • Сцената е вашият творчески пясък.
  • Проект - тук са всички анимации и модели, звуци и текстури.
  • За да инсталирате модели в горната лента с инструменти, изберете Активи-Импортиране на нов актив. Можете също така Активи-Импортиране на пакет-Персонализиран пакет. Във втория случай пакетът трябва да е в разширението .unity.
  • Йерархия - всички обекти в сцената. Там създавате родители за обекта. Просто преместете обект на друг в йерархичното меню и той ще бъде прикачен. Резултатът ще бъде един вид папка.
  • Лента с инструменти - списък с инструменти. Там можете да активирате 2D, 3D режим.
  • Инспектор - функция на обект, където добавяте анимации, скриптове и др. Там можете да използвате инструментите: преместете камерата, преместете обекта, разтегнете, завъртете обекта.


Сега виждате менюто на обекта, в него можете да добавяте анимация, скриптове и др.

Мисля, че с това меню няма да имате проблеми.
Кликнете, за да създадете произволен обект.

Като цяло, ние проучихме програмата, скоро ще бъде възможно да пишем наши собствени игри.

2. Създайте проста игра

Първо, нека създадем територия Create-Terrain. Добавете трева и дървета. Като щракнете върху земята вдясно, ще се появи прозорец, изберете дървета, трева.


Също така създайте планини и неравности. След това заредете пакета контролер Characher в проекта. След това търсим в прозореца с проекта за стандартен контролер на активи-знаци и избираме изглед от първо лице (капсула) или изглед от трето лице (механик).
Ако първият човек, тогава просто го сложете на земята. Ако от третия, тогава трябва да изтеглите анимацията. Също така препоръчвам да зададете осветлението на сцената на Create-Directional Light.


За да добавите музика, плъзнете я до желания елемент.
Играта е готова, но как да я компилирам?

За да направите това, отидете на File-Build settings-player settings (за етикет и име). Изберете платформа и готово. За да направите това, трябва да инсталирате Android SDK. Но там трябва да посочите папката с SDK и се нуждаете не само от SDK, а от API на желаното ниво (например Android 4.2 има API 17). Например, за да бъде играта на Android 4.0+, трябва да инсталирате тези API.

В следващата статия ще ви кажа как да настроите контроли за Android или iOS и да научите как сами да пишете скриптове.

Преглеждания на публикацията: 19 374

Говорихме за това как можете да създадете своя собствена игра на Android с помощта на Unreal Engine. В тази статия ще разгледаме друг също толкова популярен двигател за разработка на игри - единство.

Unity е много известен двигател сред независимите разработчици. Всъщност това е крос-платформен двигател, който ви позволява да се развивате 3D- и 2D-игри. Характеристиката, която отличава Unity от другите двигатели, е ниският входен праг за начинаещи, като същевременно има богат набор от инструменти за професионалисти. Кросплатформеността ви позволява да разработвате приложения за всяка платформа, от настолни игри до мобилни.

Отделно си струва да споменем системата за абонамент, тъй като Unity не е напълно безплатен продукт. Има няколко вида абонаменти:

  • Лична. Безплатна версия, която съдържа всички основни функции на двигателя. Той има следното ограничение: доходът на година или сумата на събраните средства не трябва да надвишава 100000$ .
  • плюс. пер $35 на месецпредоставят се различни отчети и анализи, както и възможност за промяна на началния екран, 20% -та отстъпка при покупки в Магазин за активии различни дребни придобивки. Той има следното ограничение: приходите за годината или размерът на събраните средства не трябва да надвишава 200000$ .
  • Професионалист. пер $125 на месецвключва всички предимства на версията плюси допълнително професионално обслужване и първокласна поддръжка. Няма ограничения за оборот или размер на средствата.
  • Отделни версии за бизнеса (използвани от големи компании).

По този начин инди разработчиците с малки бюджети трябва да бъдат доволни от версията Личнаили плюсв противен случай ще трябва да се абонирате Професионалист. В тази статия ще използваме безплатна версияза първи манш.

Стъпка 1 Инсталирайте Unity

За да започнете да инсталирате Unity, трябва да отидете на уебсайта на Unity Store, където ще бъдете подканени да изберете типа на абонамента. Както споменахме по-горе, ние избираме Лична.

След това ще бъдете подканени да приемете условията за ползване и да изтеглите инсталационната програма. Можете също да проверите Системни изискванияза работа с Unity.

След като стартирате инсталатора, ще бъдете подканени да изберете кои компоненти да инсталирате. Тъй като трябва да създадем приложение за Android, ще поставим отметка в квадратчето за Поддръжка за изграждане на Android. Също така, ако желаете, вместо с Unity, можете да инсталирате Общност на Visual Studio 2017за програмиране на ° С#.

След това остава само да изберете пътя за инсталиране и да започнете да инсталирате Unity.

Стъпка 2: Регистриране и настройка на Unity

След завършване на инсталацията и стартиране на Unity, ние сме подканени да влезем с нашия акаунт.

След това отново ще бъдете помолени да изберете абонамент, ние също ще се съсредоточим върху Personal. В този случай ще трябва да потвърдите, че годишният доход на компанията е по-малък от $100 000 или че Unity се използва за целите на обучението.

В края се предлага да направите малка анкета, в която трябва да отговорите какво правите и с каква цел инсталирате Unity.

Стъпка 3. Създайте нов проект

След като конфигурираме Unity, стигаме до екрана за избор / създаване на проект. Натисни тук Новза да създадете своя нов проект.

След това в прозореца, който се показва, ще бъдете помолени да въведете името на проекта и директорията, в която ще се намира. Също така не забравяйте да поставите отметка в квадратчето 3Dза да използвате редактора в 3D режим.

Когато сте готови с това, щракнете Създайте проектза създаване на проект. След това ще се отвори прозорец на редактор с предварително генерирана сцена.

Нека засега да не се занимаваме с тънкостите на програмирането и да вземем за пример готова игра. За това има Магазин за активи, който съдържа огромен брой готови модели, анимации, звуци (и дори игри), както платени, така и безплатни.

За да отворите магазина за активи, трябва да влезете в менюто прозорецизбирам Магазин за активи(клавишна комбинация ctrl-9).

Витрината на магазина ще се отвори. Въведете в лентата за търсене " примерна игра в стил flappy bird" и отворете безплатен пример, който ще използваме в нашия проект.

Щракване Изтеглии след като го изтеглите, можете да го импортирате във вашия проект. За да направите това, щракнете Импортиране, след което ще се появи предупреждение, че настройките на проекта ще бъдат променени след импортиране.

След като се съгласите с импортирането, ще видите прозорец, в който трябва да изберете кои компоненти да импортирате. Изберете всички и щракнете Импортиране.

След като импортирането приключи, ще видите новите файлове в браузъра на проекти. Това са файловете на играта. За да отворите сцената в редактора, разгънете Лека птицастил - сцении кликнете два пъти върху Основен.

В резултат на това сцената на играта ще се появи в прозореца на 3D редактора.

Можете да проверите как работи играта направо в Unity, като щракнете върху бутона играянад прозореца на редактора.

Стъпка 4 Конфигурирайте Android Tools

Забележка:ако използвате андроид студио, тогава вече имате всичко инсталирано необходими компонентии така можете безопасно да преминете към следващата стъпка.

За да сглобите получената игра на Android, трябва да инсталирате следните инструменти:

  • Комплект за разработка на Java (JDK).Можете да го изтеглите от уебсайта на Java. Щраквайки върху връзката, ще видите най-отгоре Java платформа (JDK), кликнете върху Изтеглидо надписа, след което изберете своя операционна системаи започнете да изтегляте. След това просто следвайте инструкциите на инсталатора.
  • SDK за Android. от най-много по прост начинза да инсталирате най-новата версия е да изтеглите Android Studio, с който идва този SDK. За да направите това, отидете на уебсайта на Android Studio и щракнете Изтеглете Android Studio. Инсталаторът на Android Studio инсталира основните компоненти на Android SDK, необходими за разработката на Android.

Стъпка 5. Подгответе проекта за стартиране

Първо, трябва да смените платформата за разработка на Android. За да направите това, в Unity отворете менюто File и изберете Build Settings.

В прозореца, който се показва, изберете Androidи след това натиснете платформа за превключване.

Превключването на платформата ни казва, че ще създаваме приложение за Android. Това означава, че когато изграждаме приложението, Unity ще създава APK файл. Превключването на платформата също принуждава Unity да импортира повторно всички активи в проекта. Това няма да отнеме много време при малък проект, но имайте предвид, че тази операция може да отнеме много време при големи проекти.

Сега трябва да предоставим име на пакет за приложението.

Забележка:Името на пакета е уникален идентификатор за приложението и е написано в обратен DNS стил във формата com.CompanyName.ProductName. След публикуване на приложението в Google Playимето на пакета вече не може да се променя.

За да направите това, отидете в менюто редактиранеи изберете Настройки на проекта - Плейър.

От дясната страна на Unity ще се отвори прозорец с много различни настройки, като версия на приложението, целеви и минимален SDK, избор на икони и т.н. Тук имаме нужда от блока Други настройкинамирам Идентификацияи задайте името на пакета в полето име на пакета. Можете също така да промените други настройки, ако желаете.

Сега остава само да посочите пътя до Android SDK и JDK. За да направите това, отидете в менюто и изберете Редактиране-Предпочитания.

В прозореца, който се показва, отидете на Външни инструментии в нивите SDKи JDKпосочете подходящите пътища и след това затворете прозореца.

Стъпка 6: Изграждане и стартиране на приложението

Време е да създадете първото си приложение на Unity. За да направите това, изберете от менюто Файл - Настройки за компилация. Ще се отвори прозорец, в който ще трябва да добавите сцената, която искате да сглобите. Тъй като тази сцена вече е отворена в редактора, просто щракнете Добавете отворени сцениза да го добавите към сборката, след като го добавите, ще го видите в списъка със сцени.

Остава само да натиснете Изграждане, след което Unity ще започне изграждането на приложението. Преди това може да бъдете помолени да изберете папка, в която ще бъдат записани събраните файлове на приложението, както и името на APK файла.

Забележка:на този моментако имате инсталирана алфа версия в Android SDK Инструменти за изграждане(версия 28.0.0-rc1), при изграждане на Gradle ще даде грешка. За да коригирате това, просто премахнете тази версия от Android SDK.

В резултат на това вграденият APK файл ще се появи в указаната от вас папка, готов за инсталиране на емулатора или на реално устройство.

Нека да видим какво има вътре в вградения APK. За да направим това, използваме помощната програма APK анализатор, който е включен в Android Studio,

Размерът на некомпресирания APK файл е 21,1MB, в компресиран 20,9MB. Както можете да видите от графиката, по-голямата част от обема е заета от библиотеки на трети страни, добавени от Unity. След това в актививсички ресурси, които се използват в сглобената сцена, са локализирани. Файл classes.dexсъдържа само 89 класове и 479 методи.

Освен това, ако погледнете AndroidManifest.xml, приложението се състои от една дейност.

Заключение

Това е всичко. В тази статия научихме как да инсталираме и конфигурираме Unity и създадохме първото си приложение за Android.

Как бързо и сравнително лесно да създадете проста игра или приложение за Android? Прочетете за това в статията по-долу, която се занимава с работата с двигателя Unity3D.

Играете ли компютърни игри? Ако е така, тогава със сигурност в процеса на преминаване на следващия блокбъстър на играта понякога сте имали мисли като: „Но тук, щях да го направя погрешно!“. Искате ли самият вие да бъдете разработчик? Тогава ви предлагам едно малко, но много забавно "приключение";)

Какво е двигател и защо е необходим?

Преди това, в дните на първите компютри, игрите и програмите бяха създадени по така наречения "хардкор" метод. Тоест, за пълноценна разработка се изискваше доста опитен програмист, който добре познава своя език за програмиране и може да напише почти цялата игра (включително пикселна графика и специални ефекти!) В обикновен Notepad. Имаше малко такива хора и те бяха високо ценени (и все още се ценят) ...

Днес прагът за влизане в темата за програмиране е намалял значително. И това се улеснява не само от наличието на литература и всякакви обучителни материали, но и от все по-опростения процес на разработка. В днешно време рядко се срещат истински „хардкор“ хора, тъй като се появиха доста удобни среди за разработка, които се наричат ​​„двигатели“.

Същността на двигателя е, че ви позволява да импортирате всички необходими обекти на играта в опростен визуален режим, да ги подредите на виртуална сцена и да конфигурирате всичките им параметри. Тоест, задачата на програмиста е само да напише правилно логиката на играта!

Въпреки това, трябва да платите за удобството на работа с леко увеличение на размера на проекта (понякога дори няколко пъти!) В сравнение с неговия колега, написан по стария "хардкор" начин. Поради тази причина някои разработчици не харесват двигатели или се опитват да напишат свои собствени, в които се използват само необходимите им компоненти ...

Но вие и аз сме далеч от истинските програмисти :) Затова нека създадем проста игра за Android, базирана на популярния и мощен двигател Unity3D.

Първи стъпки с проект в Unity3D

И така, защо решихме да използваме Unity3D:

  • възможност за създаване на пълноценни 2D и 3D игри;
  • възможност за компилиране на готовата игра за всяко устройство;
  • относителна лекота на управление на двигателя;
  • добра разширяемост на функционалността чрез свързване на плъгини;
  • сравнително малък размер на окончателното сглобяване на играта (в сравнение с други двигатели).

Основният коз на Unity3D, разбира се, е неговата гъвкавост и мултиплатформа. Завършена игра(може би с малко промяна) Можете да пренесете към компютър (Windows, Linux или MacOS), Android, PlayStation или XBox! За да направим това, трябва да изтеглим само самия двигател, който между другото "тежи" повече от гигабайт и необходимите SDK (ако е планирано разработване за мобилни платформиили конзола). Ако искате да направите игра за Windows, тогава не е необходимо да изтегляте нищо, но тъй като ние ще направим игра за Android, ще трябва да изтеглим и Android SDK (Комплект за разработка на софтуер). Съветвам ви да изтеглите SDK в ZIP архив за по-голямо удобство при работа с него.

Когато всичко е изтеглено, можете да разопаковате във всяка удобна за вас папка на Android SDK и след това да продължите да инсталирате самия Unity3D. Инсталира се като всяка обикновена Windows програма, така че не би трябвало да има проблеми с инсталацията. След инсталирането двигателят ще стартира и първо ще трябва да създадем нов проект:

За да направим това, ще трябва да затворим всички прозорци за добре дошли и уводни прозорци и след това да изберете "Нов проект" от менюто "Файл". В прозореца, който се отваря (вижте екранната снимка по-горе), ще бъдем подканени да посочим папката за запис на проекта (нейното име ще бъде същото като името на проекта), да импортираме някои стандартни набори от функции (не ни трябват) и да посочим режима на работа. Изберете 2D като режим и щракнете върху бутона "Създаване". Това завършва подготвителната част от работата :)

Интерфейс на двигателя и йерархия на проекта

След като създадете проекта, той ще бъде зареден в работното пространство на Unity3D:

Самото работно пространство има модулна структура и се състои от няколко вложени прозореца, които могат да се местят, както желаете. Настроил съм го така (отляво надясно и отгоре надолу):

  1. Йерархичен прозорец - показва йерархичната позиция на активните и неактивните обекти на сцената. По подразбиране единственият обект непосредствено в списъка е основната камера.
  2. Прозорец на сцената - показва цялата сцена на играта и обектите върху нея (включително камери, звуци, текстури и т.н.).
  3. Прозорец на инспектор - показва всички свойства на обекта, избран в йерархията или на сцената и ви позволява да ги редактирате, допълвате или изтривате.
  4. Прозорец на играта - показва света на играта, който се вижда от камерата и ви позволява да изберете размера на прозореца за тестване на виртуалната игра в пиксели. Също така ви позволява да активирате разширяването на прозореца на играта в пълен размер (увеличаване при игра) и да активирате / деактивирате показването на различна информация за разработчика.
  5. Прозорци за проекти и конзоли. Прозорецът на проекта се използва за навигация в ресурсите на проекта: качени изображения, звуци, модели и т.н. Също така с помощта на този прозорец (контекстно меню) можете да създавате нови празни игрални обекти от различни видове и скриптове. Прозорецът на конзолата се използва за показване на съобщения за грешка (червено), предупреждения (жълто) и различна информация за отстраняване на грешки, поискана от вас (сиво).
  6. Прозорецът Етикет на активи е долната част на прозореца на инспектора, който показва визуализация на обекта или файла, избран в прозореца на проекта.

В допълнение към всичко по-горе, обърнете внимание на трите бутона в горния център. Те ви позволяват да стартирате проекта си, да го поставите на пауза (понякога полезно при отстраняване на грешки, за да видите какво се прави в йерархията, например) и съответно да го изключите.

Ще създадем симулатор на музикален инструмент: индийски народни барабани, наречени "табла", следователно, за да започнем, ще създадем две празни папки в проекта, в които ще се съхраняват звуци и снимки. Можете да създадете нова папка, като извикате контекстното меню в прозореца на навигатора на проекта и изберете елемента „Папка“ от списъка „Създаване“.

Тук си струва да кажем няколко думи за това как трябва да бъдат именувани тези папки. За проста игра, като нашия симулатор, по принцип папките могат да бъдат "именувани", както искате, но има поне две имена, които е по-добре да не използвате, тъй като те са запазени от двигателя. Това са имената Ресурси и Плъгини. При големи проекти папката Resources се създава незабавно и всички „резервни части“ на играта (снимки, звуци, модели, текстури и префаби) вече се съхраняват в нея (сортирани по подпапки). В Plugins, както подсказва името, се съхраняват всички допълнителни набори от функции на трети страни (така наречените "активи" (assets)), от които има доста в Asset Store - магазин за разширения за Unity3D.

Импортиране на файлове и създаване на игрови обекти

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

След като изображенията се появят в нашата папка Images, те трябва да бъдат променени малко:

Факт е, че по подразбиране Unity3D компресира всички изображения, добавени към проекта, със загуба на качество. Ако не се нуждаем от такава загуба (особено вярно за игри с HD графика), тогава трябва да изберете всяко изображение и в прозореца на инспектора да промените стойността на параметъра „Формат“ от „Компресиран“ на „Истински цвят“ в „По подразбиране“ " раздел. Може също да се наложи да промените параметъра "Максимален размер", ако е по-малък от действителната ширина на изображението (по подразбиране е 1024 пиксела). След всички промени не забравяйте да щракнете върху бутона "Приложи", за да ги приложите. Ако е необходимо, извършваме подобни действия за всички останали изображения.

Сега нека създадем обекти за игра от нашите снимки. За да направите това, просто плъзнете желаното изображение в прозореца на йерархията. Картината или 3D моделът ще бъдат автоматично преобразувани в игрови обект и показани в началната координатна точка пред камерата.

На първо място, добавихме фоново изображение, което трябва да се показва на цял екран. Можете да проверите дали това е така, като изберете камера в йерархичния прозорец и погледнете как се показва нейната рамка. На екранната снимка по-горе можете да видите, че част от нашия фон остава извън изгледа на камерата, така че трябва да коригираме размера на този изглед, като плъзнете рамката директно върху сцената или като редактирате параметъра „Размер“ в прозореца на инспектора. В нашия случай трябваше да променим стойността по подразбиране (5) на 5.4.

Това е всичко, вече не пипаме камерата, но добавяме и коригираме останалите снимки. Когато добавяме, виждаме, че някои от тях са твърде големи за нашата игра. Можете да ги намалите или физически в графичен редактор, или с помощта на двигателя. Нека опитаме последния метод. За да направите това, изберете изображението в прозореца на йерархията и в прозореца на инспектора променете стойностите на "Мащаб" за координатите X и Y от 1 до 0,5 (т.е. намалете наполовина). На същото място е желателно, за да се избегнат припокривания, да се присвои на всички обекти на играта (с изключение на фона) ненулев ред на слоевете (Поредност в слоя):

Последната стъпка в подготовката на игрови обекти от снимки ще бъде "окачване" на колайдери върху тях. В Unity3D колайдерите се използват като детектори за взаимодействие между обекти. Тоест, всъщност върху нашата снимка се поставя виртуална обвивка, която може да регистрира докосвания до нея.

За да добавите колайдер към обект, изберете го в прозореца на йерархията и след това щракнете върху бутона „Добавяне на компонент“ в прозореца на инспектора. В списъка с компоненти, който се появява, търсим Physics 2D (обикновената 3D физика няма да работи в нашия режим) и от всички опции "Circle Collider 2D" е най-подходящ за нас. Ние го избираме. Около нашия обект ще се появи зелена линия, която показва границите на колайдера. Остава само да поставите отметка в квадратчето „Is Trigger“, така че нашият колайдер да регистрира само кликвания и повече да не взаимодейства с околното пространство на играта:

Подобни действия се повтарят за всички останали обекти. Само нашият фон ще се различава от другите обекти. За целта ще приложим Box Collider 2D и ще зададем позиция Z да бъде по-голяма от нула, за да изместим колайдера и самия фон на заден план (това ще ни трябва по-късно).

Работа със звук

Със звука в Unity 3D на пръв поглед всичко е малко объркващо. Но нека се опитаме да го разберем по ред :)

Първо, трябва да плъзнем всички звуци в папката Sounds и да ги променим малко:

Ако нивото на силата на звука на всичките ви звуци е първоначално регулирано, тогава всичко, което трябва да направите, е да изключите обработката на 3D звук. В 3D игри тази обработка е необходима, за да се симулира приближаването на източника на звук, когато камерата се приближи до него. Но в 2D нямаме нужда от това, така че избираме всеки звук на свой ред и премахваме отметката от „3D звук“ от него.

Сега можем да започнем да добавяме звуци към игрови обекти. За да направим това, трябва да изберем всеки бутон последователно и да добавим към него нов компонент "Audio Source" от секцията "Audio". Когато компонентът бъде добавен, изберете съответния бутон „Аудио клип“ и премахнете отметката от квадратчето „Възпроизвеждане в будно състояние“, което е активно по подразбиране (възпроизвеждане, когато се появи):

Когато всички звуци са прикачени към правилните бутони, идва ред на забавната част - писане на скрипт...

Първи сценарий

Преди да започнем да анализираме нашия първи скрипт, вероятно си струва да кажем няколко думи за системата за скриптове в самото Unity 3D.

Unity ви позволява да пишете код на три езика едновременно: JavaScript (по-точно неговата леко модифицирана версия на UnityScript), C # и Boo. В редица книги и ръководства можете да намерите мнението, че за начинаещи скриптовете в Unity са по-лесни за овладяване, като използват JavaScript като пример. Този език обаче не е толкова удобен като другите и в бъдеще най-вероятно ще трябва да го научите отново. Ето защо е по-добре да започнете веднага, като научите C # (Boo също е добър, но има малко учебни материали за него).

Сега за това къде да напишете кода. Редакторът на код по подразбиране в Unity 3D е MonoDevelop IDE. Предимството на тази среда за разработка е, че има съвети за бързо въвеждане на стандартни методи, класове и функции, както и система за проверка на синтаксиса. За мен обаче недостатъкът беше обемистостта и високата ресурсоемкост. За щастие, в настройките на Unity можете да зададете всичко като текстов редактор, така че аз „окачих“ лекия и функционален Notepad ++ за себе си (почти всички примери ще бъдат показани в него).

И последното. Естествено, без референтни материали в овладяването на всички тънкости на двигателя няма да стигнете далеч, така че ето списък с няколко разумни интернет ресурси по темата за Unity 3D:

  • http://docs.unity3d.com/ru/current/Manual/UnityManualRestructured.html - официално ръководство за двигателя с частичен превод на руски (появи се наскоро и понякога е нестабилен);
  • http://docs.unity3d.com/ru/current/ScriptReference/index.html - официално ръководство за скриптове на английски език;
  • http://unity3d.ru/distribution/index.php - Руски форум за разработчици на Unity 3D;
  • http://habrahabr.ru/post/141362/ - серия от уроци за създаване на триизмерни игри на Habrahabr;
  • http://msdn.microsoft.com/ru-ru/library/618ayhy6.aspx - Официален C# справочник на Microsoft на руски език.

Е, за да не го протакате дълго време, предлагам веднага да създадете първия скрипт. Под скриптове, ако има много от тях, е по-добре да разпределите отделна папка, но нашата игра ще бъде проста, така че можем да създадем скрипт директно в главната папка на проекта. За да направите това, извикайте контекстното меню в прозореца на проекта, изберете списъка Създаване и щракнете върху „C # Script“. Нека кръстим нашия нов скрипт, например, Sounds и го отворим с двойно щракване. След като премахнахме стандартните методи Update и Start и след това регистрирахме необходимите, получаваме следния скрипт:

Ако не сте преконфигурирали редактора, нашият скрипт ще се отвори в MonoDevelop. Нека да разгледаме неговата структура...

Всъщност всеки C# скрипт се състои от три основни части:

  1. Най-отгоре са изброени библиотеките, които трябва да бъдат свързани, за да работи скриптът (например "using Unity.Engine" свързва работата на самия двигател, а "using System.Collections" - библиотека, съдържаща число на вградени класове за работа на скрипта под различни системи).
  2. Декларация на клас и променлива. В C# няма концепция за скрипт като такава. Вместо това се използва концепцията за "клас", която включва редица методи и функции. Въпреки че всъщност в контекста на Unity 3D това е почти същото :) Основното нещо, което трябва да запомните е, че името на класа трябва да съвпада с името, което сме дали на скрипта. Особеността на променливите в C# е, че те трябва (с изключение на временните, които са декларирани в самия скрипт) да бъдат въведени. На практика това означава, че нивото на достъп (private или public) и типът (int, float, bool или, както имаме в скрипта, AudioClip) трябва да бъдат посочени за променливата.В същото време всяко име на променлива може да бъде Или можете веднага да му придадете стойност.
  3. Набор от методи и функции. Метод в C# е почти всяка функция, която изпълнява определени действия. По принцип в литературата за Unity 3D те се наричат ​​функции, но ако говорим за C# като отделен език за програмиране, то това все пак са методи :). Чистите функции в Unity са например стандартни функции за извеждане на звук, рисуване на GUI елементи и т.н., които се използват вътре в методите.

Познавайки сега структурата на скрипта, е лесно да разберем значението му, което се свежда до следното... В класа Sounds (скрипт) ние декларираме 9 променливи от типа AudioClip с имената, които са ни необходими за удобство на разграничавайки ги. Ние ги правим непременно публични (личните няма да се показват в редактора и ще трябва да „закачим“ звуци върху тях чрез редактора). И след това в тялото на скрипта използваме стандартния метод "void OnMouseDown ()". Преди това отговаряше само за обработката на щракване с мишката, но в новите версии се интерпретира и като докосване на сензорния екран. В него записваме условията, по които проверяваме имената на натиснатите колайдери и ако засечем натискане на някой от тях, извеждаме съответния звук (използваме стандартната функция audio.PlayOneShot();).

Когато пишете код, внимавайте да включите всички отварящи и затварящи скоби, в противен случай постоянно ще получавате съобщения за грешки в конзолата и изобщо няма да можете да стартирате проекта си! Обърнете внимание и на използването на главни букви в имената на методи и функции. Те също често са причина за грешки. И, разбира се, спазвайте всички знаци (точка, двоеточие и скоби), накратко, синтаксиса на езика. В началото ще ви е трудно, но с времето ще започнете да пишете от нулата без грешки!

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

Ако скриптът е бил плъзнат правилно, тогава той трябва да се появи в прозореца на инспектора до обекта, върху който сме го плъзнали. Съответно плъзгаме скрипта до всички обекти, които трябва да звучат в играта и можем да опитаме да го стартираме. Когато щракнете върху нашите бутони за игра, сега най-накрая ще прозвучи посоченият звук!

Въведение в GUI

По принцип Играта вече функционира и при нас, но някак си е прекалено "плешива". Нещо липсва в него ... Или поне надпис с името, което е пред нас! С други думи, трябва да внедрите някакъв разбираем потребителски интерфейс.

Всъщност GUI е съкращение от английски. „Графичен потребителски интерфейс“, т.е. графичен потребителски интерфейс. Традиционно той включва такива компоненти като:

  • бутони;
  • прозорец;
  • текстови области;
  • квадратчета за отметка и/или радио бутони;
  • плъзгачи (ленти за превъртане) и др.

В Unity 3D Всичко това (и дори нещо повече от това) присъства напълно. Основното нещо е да се научите как да го използвате! Нека да разгледаме как GUI на Unity може да направи просто заглавие.

За да направите това, създайте нов скрипт с име Interface и го променете по следния начин:

Разгледайте внимателно скрипта на екранната снимка. Тук пишем само една публична променлива от типа GUIStyle, която е нова за нас. Този тип ви позволява визуално да променяте външния вид на елементите, към които е присвоен този стил. Стиловете са полезни, когато има много интерфейсни елементи от един и същи тип (например бутони), но те трябва да имат различен вид.

След това създаваме бутон ("GUI.Button"), който има следния синтаксис: условие - 4 координати (хоризонтален отстъп от левия ръб, вертикален отстъп от горния ръб, ширина, височина) - видим текст в кавички и по-нататък , по желание, индикация за стил. Необходимите функции са записани в условието на бутона. В нашия случай регистрирахме прехода към сайта на разработчиците ("Application.OpenURL("");").

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

Можем да посочим цвета на текста и текстурата за фона във всяка ситуация (за бутона трябва да регистрирате трите му опции (Normal - нормален изглед, Hover - при задържане и Active - при щракване), да зададете подложка и да коригирате шрифта. По подразбиране единственият наличен шрифт в Unity 3D е Arial, но можете ръчно да заредите всеки друг шрифт в проекта и да го приложите в полето „Шрифт“, като зададете всички свързани параметри.

Това, което е интересно и в същото време не е много удобно е, че GUI елементите не се показват на сцената, докато не започнем проекта, така че настройката на параметрите на всеки елемент може да отнеме много време. Нека стартираме проекта и да видим как ще изглежда нашият бутон, създаден по-горе:

Промяна на интерфейса чрез условие и статични променливи

Вече направихме много, но винаги има място за подобрение :) Затова предлагам, като последен пример, да създадем помощен прозорец, с който нормалните разработчици обикновено доставят своите игри и приложения. За да направите това, добавете снимка за такъв бутон под формата на въпросителен знак към папката с изображения и направете обект на игра от него. Нека закачим колайдер върху него и да напишем скрипт с име, например „Помощ“ със следното съдържание:

В този скрипт имаме две променливи. Първата променлива дефинира кожата, която ще се използва за всички интерфейсни елементи, описани в този клас. За разлика от стиловете, които обсъдихме по-горе, кожите ви позволяват да промените външния вид не само на отделния елемент, към който са присвоени, но и на всички елементи от определен тип наведнъж. Освен това, за разлика от стиловете, кожите не се присвояват на елементи, а се декларират веднага за целия метод и работят, докато не бъде декларирана друга кожа. Трябва също да се помни, че кожите съществуват не само като променливи, но и като отделни файлове. Ето защо, преди да декларирате скин, трябва незабавно да го създадете в прозореца "Проект" от контекстното меню: "Създаване" - "GUI Skin".

Втората променлива, която имаме, е логическа (или по друг начин булева). Той може да има само две стойности: "true" (вярно) или "false" (false). Поради своята двоична природа, такава променлива е перфектна за внедряване на всички видове превключватели. В нашия случай той ще отговаря за показването на текста, описващ нашата игра.

Въпреки това, ако се вгледате внимателно, ще забележите, че последната променлива има един прекрасен параметър - "статичен". Добавянето на този параметър към променливите ви позволява да ги направите статични и да имате достъп до тях от други скриптове!

Но обратно към останалата част от кода. Методът "void OnMouseDown()", който вече ни е познат тук, ще служи като превключвател за променливата "isVisible", използвайки просто условие. След условието обаче има друга функция. Тази функция ("Debug.Log();") се използва за извеждане "в движение" на конзолата на стойностите на променливите, от които се нуждаем (въвеждаме ги без кавички в скоби). Както можете да видите, във функция можете да комбинирате както неизменен текст (написан в кавички), така и променливи (без кавички). Основното е, че между всички данни трябва да има знак "+".

По-нататък в текста на скрипта имаме метод за изчертаване на интерфейса ("void OnGUI()()"), вътре в който виждаме декларацията на нов скин ("GUI.skin = HelpSkin;") и нов интерфейсен елемент от типа GUI.Box. За разлика от бутона, кутията е неактивен елемент и обикновено служи за показване на различни текстови или графични данни.

Обърнете внимание как задаваме позиционирането на кутията. Тук всички стойности не са посочени директно, а с помощта на математически изрази, което всъщност е аналог на "течното оформление" в уеб разработката. Проблемът е, че при посочване на точните размери на GUI елементи при различни разделителни способности на екрана, те няма да се адаптират и могат да бъдат или твърде малки, или, обратно, големи. В следващата версия на двигателя разработчиците обещават да направят GUI адаптивен, но досега трябва да се извратим :(

Последната стъпка по пътя към успеха ще бъде персонализирането на нашата кожа. Посочваме файла на кожата в променливата на скрипта и след това избираме този файл в прозореца на проекта. Както при другите файлове, настройките на кожата ще бъдат показани в прозореца на инспектора. Тук търсим елемента, който подлежи на промяна (в нашия случай Box), отваряме го и го настройваме по същия начин като стила, обсъден по-горе:

За да видим дали скриптът ни работи правилно, нека стартираме проекта и се опитаме да щракнем върху бутона за помощ:

Сега всичко работи, но не винаги е удобно да натиснете бутона за помощ, за да скриете описанието обратно. По-обичайно е да пъхате всякакви известия във всяко свободно мястоотколкото да се целите в бутоните. И тук просто трябва да използваме факта, че направихме променливата "isVisible" статична, както и колайдера, окачен на фоновото изображение...

Нека се върнем към първия ни скрипт („Звуци“), който проследява натисканията на бутони за възпроизвеждане на звуци. За нас ще бъде достатъчно да напишем само един ред в него (по-точно в метода "void OnMouseDown ()":

if (this.name != "HelpButton")(Help.isVisible = false;)

С този ред задаваме условие: ако името на натиснатия колайдер не е равно на името на бутона за помощ, тогава променливата "isVisible" в скрипта "Help" ще бъде равна на "false". Необходимо е само променливата "isVisible" определено да има послеписа "static", в противен случай ще получим грешка.

Сега, при стартиране, ще видим, че нашият помощен прозорец е затворен не само когато щракнете върху бутона в горния десен ъгъл, но и когато докоснете която и да е свободна част от екрана. Единственото нещо, което може да се подобри, е да накарате прозореца да се скрие, когато щракнете върху него... Това ще бъде вашата "домашна работа";) Мога само да кажа, че GUI полето ще трябва да бъде променено с бутон с подобен дизайн, отново , с настройка на кожата и предписване на функция, която променя променливата "isVisible". Всичко, мълчи :)

Компилиране на играта и запазване на проекта

Най-накрая всичко работи за нас! Това означава, че е време да запазим нашата игра и да я тестваме на реално устройство. И за това трябва да се компилира в изпълним файл (за Windows, например, в EXE, и за Android, в APK).

Ако искате да компилирате игра за компютър, тогава не е необходимо да правите никакви предварителни настройки. За Android обаче първо ще трябва да свържете Android SDK, който изтеглихме в самото начало. Това се прави съвсем просто: отидете в менюто "Редактиране", извикайте елемента "Предпочитания" и в прозореца, който се отваря, отидете в раздела "Външни инструменти". Тук търсим реда "Android SDK Location" и в него посочваме пътя до разопакования архив с SDK (вижте екранната снимка по-долу). Между другото, тук можете също да промените чудовищния MonoDevelop текстов редактор, активен по подразбиране, на вашия любим :)

И сега дойде моментът на истината! Отидете в менюто "Файл" и потърсете там елемента "Настройки за изграждане". В прозореца, който се отваря, ще трябва незабавно да добавим сцени за сглобяването. Ако има само една сцена (както в нашия проект), тогава ще бъде достатъчно да щракнете върху бутона „Добавяне на текуща“. Ако има няколко от тях, тогава ще трябва да отворите всяка от тях и да ги добавите към списъка със сцени по същия начин, след което чрез плъзгане и пускане коригирайте желания ред:

Следващата стъпка е да изберете платформата за изграждане (планираме игра за Android, което означава, че я избираме) и щракнете върху бутона „Настройки на играча“ по-долу. Прозорецът на инспектора ще отвори редица настройки, някои от които са задължителни или силно желателни. Желателно е да посочите имената на фирмата разработчик, програмата и нейната икона (съответно име на фирма, име на продукт и икона по подразбиране) в горната част на списъка с настройки.

В долната част, в секцията „Други настройки“, има два задължителни параметъра: „Идентификатор на пакет“ и „Версия на пакет“. Версията по подразбиране е зададена като 1.0, но идентификаторът ще трябва да бъде създаден ръчно и, за предпочитане, уникален. Той трябва да се състои от три части, разделени една от друга с точки: запазената дума „com“, след това името на компанията разработчик и накрая името на самото приложение.

Можете да промените останалите настройки на сглобяването по свое усмотрение или да не променяте изобщо. Основното е, че сега компилацията вече ще може да започне. За да направите това, просто щракнете върху бутона "Build" в прозореца "Build Settings" и изчакайте, докато програмата ни даде готово приложение, пакетирано в APK файл :)

Заключение

Това завършва нашия преглед на урока за създаване на най-простите приложения за Android. За да можете да повторите всичко, за което говорихме, в края на статията ще дам връзка към архива, който ще съхранява всички ресурси на играта като отделна папка (ако искате да направите всичко от нулата) и като файл с разширение unitypackage. Последното ви позволява да импортирате целия проект в Unity наведнъж, включително зависимости и т.н.

За да импортирате нашия проект (и, между другото, всички добавки, изтеглени от Интернет или Assets Store), трябва да отидете в менюто „Активи“, да изберете елемента „Импортиране на пакет“ и в него „Персонализиран пакет“, след това посочете пътя до нашия файл и натиснете бутона "Импортиране". Между другото, можете да направите пълно архивиране на вашия проект, като го запазите в такъв unitypackage, от същото меню ("Активи"), като щракнете върху елемента "Експортиране на пакет".

Изглежда всичко :) Като човек, който сам усвои Unity 3D от нулата, в статията се опитах да отговоря на максималния брой въпроси и да подчертая основните нюанси на работа с двигателя, които възникват в началото. Но може би това няма да е достатъчно за някого, следователно, ако имате въпроси, можете да се свържете с мен или директно по пощата, или във форума: ще ви помогна с каквото мога!

Желая на всички успех и успешна реализация на всички проекти!

P.S. Разрешено е свободното копиране и цитиране на тази статия, при условие че е посочена отворена активна връзка към източника и е запазено авторството на Руслан Тертишни.