Изтеглете приложението unity 3d за android. Използване на Unity за разработване на приложения. Как да създавате игри в Unity

Разработването на игри за устройства с Android OS изисква подход, подобен на този за iOS. От друга страна, хардуерът на Android устройствата не е подчинен на ясни стандарти, което налага решаването на проблеми, които липсват при работа с iOS. Има и разлики между Android и iOS версиите на Unity.

Подготовка на средата за разработка на Android

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

Достъп до функциите на Android

Unity предоставя API за достъп до въвеждане и настройки на Android. Наличните класове са документирани в страницата Code for Android Assemblies.

Свързване на C, C++ или Java код със скриптове

Unity ви позволява да извиквате функции, написани на C/C++ директно от скриптове (функциите на Java могат да се извикват индиректно). За да научите как да получите достъп до функции от собствен код от Unity, посетете страницата за изграждане на плъгини за Android.

Отрязване на оклузия (изрязване на невидима геометрия)

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

Персонализиране на началния екран

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

Отстраняване на неизправности и докладване на грешки

Има много причини, поради които приложението ви се срива или не работи правилно. Нашето ръководство за решаване на специфични за Android проблеми ще ви помогне да се справите с причините за грешките за възможно най-кратко време. Ако след като прочетете ръководството приемете, че проблемът е в Unity, трябва да подадете доклад за грешка. Обърнете се към тази страница за инструкции.

Как Unity за Android се различава от десктоп версията

JavaScript със силно въвеждане

За да се подобри производителността във версията на Unity за Android, динамичното въвеждане в JavaScript винаги е деактивирано (сякаш #pragma strict се прилага автоматично към всеки скрипт). Това е важно да запомните, ако пренасяте проект към Android от по-стари платформи и ако срещнете грешки при компилиране, проблемът трябва да се търси първо във въвеждането. Такива грешки обикновено се справят лесно, като се уверите, че типовете на всички променливи са изрично посочени или преобразувани по време на инициализацията.

Докато Unity Android поддържа DXT/PVRTC/ATC текстури, Unity ще декомпресира текстурите до RGB(A) формат по време на изпълнение, ако тези методи за компресиране не се поддържат на конкретното устройство. Това може сериозно да повлияе на производителността на графичния процесор, така че се препоръчва използването на ETC формат. Това е де факто стандартът за Android и трябва да се поддържа от всички съвременни устройства. От друга страна, ETC не поддържа алфа канал и понякога 16-битовите RGBA текстури ще бъдат най-добрият избор по отношение на качество, размер и скорост на изобразяване, когато е необходим алфа канал.

Преглеждания на публикацията: 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" и отворете безплатен пример, който ще използваме в нашия проект.

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

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

След като импортирането приключи, ще видите новите файлове в браузъра на проекти. Това са файловете на играта. За да отворите сцената в редактора, разгънете Стил 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.

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, но само с правилна конфигурация.

развитие мобилни приложенияе една от най-доходоносните професии в компютърната индустрия. Създаването на игра за 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, вижте серия от видеоклипове, посветени на тази дейност.

Как бързо да напишете игра за Android с Unity

В момента всеки може да стане успешен разработчик на мобилни игри или приложения, без да полага титанични усилия. Пример за такъв случай е Dong Nguyen, който разработи Flappy Bird. Играта нямаше сложна механика или графика, но това не й попречи да стане популярна и да носи на своя създател петдесет хиляди долара на ден. В играта обаче нямаше нищо забележително. Всичко, което беше нужно, за да успееш, беше да си на точното място в точното време и малко късмет. Подобни неща могат да се случат и днес, просто ви трябва правилната идея.

За да демонстрираме колко лесно е да напишем нещо подобно, днес ще напишем нашата собствена Flappy Bird с помощта на Unity само за 10 минути.

игрови характер

Първо създайте нов проект и се уверете, че е избрана опцията 2D.

Заредете своя птичи спрайт в сцената. Не забравяйте да включите въображението си!

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

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

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

Сега щракнете върху Добавяне на компонент. Изберете Physics2D > Rigidbody2D - това е готов комплектинструкции за прилагане на гравитацията към нашия характер. Щракнете върху Ограничения в този панел и след това изберете въртене на замръзване Z . Това ще попречи на птицата да се върти около камерата.

По същия начин добавете Polygon Collider, който казва на Unity къде са границите на героя. Натиснете Play и вижте как спрайтът, заедно с камерата, пада безкрайно.

Засега всичко върви добре!

Сега е време да започнете да управлявате героя, тъй като няма да е трудно.

Първо трябва да създадете C# скрипт. Създайте папка за него (щракнете с десния бутон някъде в активите и създайте папка „Скриптове“), щракнете с десния бутон и изберете Създаване > C# скрипт .

Нека го наречем "Характер". Кликнете два пъти върху него, за да го отворите във вашата IDE, независимо дали е MonoDevelop или Visual Studio. След това добавете следния код:

Публичен клас Характер: MonoBehaviour ( public Rigidbody2D rb; public float moveSpeed; public float flapHeight; // Това е за инициализация void Start () ( rb = GetComponent(); ) // Актуализацията се извиква веднъж на кадър void Update () ( rb .velocity = нов Vector2(moveSpeed, rb.velocity.y); if (Input.GetMouseButtonDown(0)) (rb.velocity = new Vector2(rb.velocity.x, flapHeight); ) if (transform.position.y > 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 като щракване с мишката, ако използвате мобилно устройство. След натискане принуждаваме героя да се издигне малко.

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

Методът Death() също е обявен за публичен, което означава, че други обекти и скриптове могат да го извикват. Този метод просто връща позицията на знака в началото. Също така ще се използва всеки път, когато героят лети твърде високо или ниско. Скоро ще разберете защо е обявен за публичен. Линията rb.velocity = Vector3.zero; необходими за премахване на инерцията - не искаме героят да пада все по-бързо и по-бързо след всяка смърт, нали?

Сега можете да излезете от IDE и да добавите скрипта като компонент към героя. За да направите това, изберете нашата птица и щракнете върху Добавяне на компонент > Скриптове > Символ . Сега можем да дефинираме moveSpeed ​​​​и flapHeight в инспектора (за това са публичните променливи). Присвояване променливи стойности 3 и 5, съответно.

И още нещо: в инспектора трябва да добавите таг към героя. За да направите това, щракнете там, където пише Tag: Untagged и след това изберете Player от падащия списък.

Препятствия

Сега нека добавим препятствия: тръби. Някой намира гъби в тръбите, а някой намира собствената си смърт.

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

Публичен клас Pipe: MonoBehaviour ( private Character character; // Необходим за инициализация void Start () ( character = FindObjectOfType(); ) // Актуализацията се извиква веднъж на кадър void Update () ( if (character.transform.position.x - transform.position.x >

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

Методът OnCollisionEnter2D() се извиква всеки път, когато тръбата взаимодейства със знак. След това се извиква създаденият по-рано метод Death(), който връща играча в началната точка.

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

обърнати тръби

В момента имаме само един тръбен спрайт. Нека добавим още един. За да направите това, щракнете с десния бутон върху прозореца на йерархията, щракнете върху Нов 2D обект > Спрайт и след това изберете спрайта, който искате да използвате. Още по-лесно е просто да плъзнете файла отново в сцената.

Назовете този спрайт pipe_down. В инспектора под Sprite Renderer изберете опцията Flip Y, за да обърнете тръбата с главата надолу. Добавете същото RigidBody2D.

Сега нека напишем нов C# скрипт, наречен PipeD. Ще има подобен код:

Публичен клас PipeD: MonoBehaviour ( private Character character; // Това е необходимо за инициализация void Start() ( character = FindObjectOfType(); ) // Актуализацията се извиква веднъж на кадър 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.

Създайте публичен 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); Instantiate(gameObject, нов Vector2(character.transform.position.x + 15 + xRan, -11 + yRan), transform.rotation); Instantiate(pipeDown, нов Vector2(character.transform.position.x + 15 + xRan, 12 + gapRan + yRan), transform.rotation); Destroy(gameObject); )

Върнете се в Unity и плъзнете pipe_down prefab от папката prefabs (това е важно!) до мястото, където пише „Pipe Down“ (забележете как нашият случай на камила е заменен с интервал) върху pipe sprite pipe up . Ако си спомняте, ние дефинирахме Pipe Down като публичен gameObject, което ни дава възможност да определим какъв е този обект от всяко място - в този случай чрез инспектора. Избирайки префаб за този обект, ние се уверяваме, че когато каналът бъде инстанциран, той ще включва всички атрибути и скрипт, които добавихме по-рано. Ние не просто създаваме спрайт, но пресъздаваме обект с колайдер, който може да убие героя.

Всичко, което ще добавим на същото място в скрипта PipeD, е просто Destroy(gameObject) , така че тръбата да се самоунищожи, когато излезе от лявата страна на екрана.

Ако започнете играта сега, екранът ще премине автоматично и ще умрете, ако ударите някоя от тръбите. Летете достатъчно далеч и тези тръби ще изчезнат и ще се появят отново отпред.

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

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

Безкраен полет

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

Трябва да добавим тези променливи:

Публичен GameObject pipe_up; публичен GameObject pipe_down;

Тогава ще напишем метод като този:

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

Ще го извикаме веднъж в метода Update() и веднъж в метода Death().

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

Върнете се на сцената в Unity и изтрийте двете тръби, които сега са там. Вашата "игра" просто ще изглежда като празен екран с птица. Натиснете Play и тръбите ще се появят, след първите няколко позицията им ще бъде определена на случаен принцип.

Накрая

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

Искате да пишете приложения за Android, но не знаете откъде да започнете? Тогава разгледайте нашия страхотен урок за изучаване на разработката за Android.



 
Статии Натема:
Упътване за castlevania lords of shadow 2
Упътване за Castlevania Lords of Shadow 2 Първи урок. Ще бъде необходимо да станете от трона и да отидете в залата, където трябва да натиснете всички бутони на дисплея вляво. След появата на войниците продължаваме да следваме инструкциите, просто няма смисъл да ги бием. Има някои пр
Всичко, което трябва да знаете за SD картите с памет, за да не се прецакате, когато купувате Connect SD
(4 оценки) Ако нямате достатъчно вътрешна памет на вашето устройство, можете да използвате SD картата като вътрешна памет за вашия телефон с Android. Тази функция, наречена Adoptable Storage, позволява на Android OS да форматира външен носител
Как да завъртите колелата в GTA Online и повече в GTA Online ЧЗВ
Защо gta online не се свързва? Просто е, сървърът е временно изключен/неактивен или не работи. Отидете на друг Как да деактивирате онлайн игрите в браузъра. Как да деактивирам стартирането на приложението Online Update Clinet в Connect manager? ... на skkoko знам кога имаш нещо против
Асо пика в комбинация с други карти
Най-честите тълкувания на картата са: обещание за приятно запознанство, неочаквана радост, неизпитани досега емоции и усещания, получаване на подарък, посещение на семейна двойка. Асо сърца, значението на картата, когато характеризирате конкретен човек