Android uchun ilovalar yaratish. Ilovalarni ishlab chiqish uchun Unity-dan foydalanish Android uchun 3D o'yinni yaratish

Rivojlanish mobil ilovalar kompyuter sanoatidagi eng daromadli kasblardan biri hisoblanadi. Android o'yinini yaratish yuzlab yoki minglab dollarga tushadi va foyda million dollargacha yetishi mumkin. Shu munosabat bilan ko'pchilik telefon uchun ilovalar ishlab chiqishga qiziqish bildirmoqda. Ushbu maqolada siz Android o'yinini noldan kompyuter yordamida qanday yaratishni o'rganasiz, qaysi dvigatel va dizaynerni tanlash yaxshiroq.

yo'q muvaffaqiyatli o'yin holda qila olmayman chiroyli grafikalar Shuning uchun dizaynni yaratish rivojlanishning eng muhim bosqichlaridan biridir. Android operatsion tizimida dizayn "dizayn hujjati" yoki dizayn hujjati yordamida amalga oshiriladi. Siz uni batafsil o'rganish bilan o'yinchoq yaratishni boshlashingiz kerak. Fayl o'z ichiga oladi:

  1. Ob'ekt modellari;
  2. Funktsional spetsifikatsiyalar;
  3. O'yin mazmuni;
  4. Interfeys.

Keling, har bir nuqtani batafsil ko'rib chiqaylik.

Ob'ekt modellari

Bu har bir elementning funksionalligi haqida ma'lumot. Ob'ekt modellari narsalarni sotib olish va sotish qobiliyati, shuningdek, belgilarning o'yin xususiyatlarini yaxshilash uchun javobgardir.

Funktsional spetsifikatsiyalar

Bu o'yin jarayonini, har bir belgining asosiy xususiyatlarini tasvirlaydi. Shuningdek, u xususiyatlarni tavsiflaydi o'yin elementlari- qurollar, birinchi tibbiy yordam to'plamlari, zirhlar va boshqalar. Asosan, funktsional spetsifikatsiyalar qoidalardir o'yin jarayoni. Ushbu bo'lim qanchalik yaxshi ishlab chiqilsa, yuqori sifatli Android o'yinini yaratish osonroq bo'ladi.

O'yin mazmuni

Bu o'yin matnini to'ldirish. Unda qahramonlarning dialoglari va zarar etkazish uchun qanday qurollardan foydalanish mumkinligi, zarba qancha sog'likka olib kelishi va turli jihozlardan foydalanganda qanday xususiyatlar kuchayishi tasvirlangan. Bundan tashqari, o'z ichiga oladi batafsil tavsif har bir element.

Interfeys

Interfeys foydalanuvchining o'yin bilan qanday munosabatda bo'lishidir. U xarakterni boshqarishingiz mumkin bo'lgan tugmalarni va menyu bo'limlarini o'z ichiga oladi: masalan, o'ynash, ball, sozlamalar, eng yaxshi o'yinchilar, yordam. Agar Android ilovalarini yaratishda tajribangiz bo'lmasa, o'zingizni yaratishdan oldin, Play Market-dan yuklab oling va mashhur o'yinlarni tahlil qiling va loyihangizga eng yaxshi echimlarni o'tkazing.

O'yin dvigateli

Har qanday o'yinning yadrosi dvigateldir. Bu uni ishlab chiqish va ishga tushirish imkonini beruvchi dastur. U ko'plab dasturlarni o'z ichiga oladi, jumladan renderlash mexanizmi, fizika dvigateli, ovoz, animatsiya va boshqalar. Dasturlarni yozish jarayonini osonlashtirish uchun uchinchi tomon ishlab chiquvchilari Android ilovalari uchun maxsus o'yin motorlarini yaratadilar.

Ularning har biri turli funktsiyalarni taklif qiladi: ba'zilari 3D uchun mo'ljallangan, boshqalari 2D uchun, ko'p platformali qo'llab-quvvatlanishi mumkin. Bunday dvigatellar juda ko'p, ammo agar siz yangi boshlovchi bo'lsangiz, eng mashhurlaridan birini tanlash yaxshidir, chunki u erda barcha kerakli funktsiyalar mavjud bo'ladi.

UDK

Moment 2d/3d

O'yin dizayneri nima?

Konstruktor - bu o'yin mexanizmi va integratsiyalashgan rivojlanish muhitini birlashtirgan dastur. Konstruktor ishlab chiqish jarayonini dasturlash ko'nikmalariga ega bo'lmagan odamlar uchun ochiq qiladi. Dizaynerlarning ba'zilari sizga ma'lum janrlardagi o'yinlarni yaratishga imkon beradi, boshqalari maksimal funksionallikka ega, ammo ancha qimmatga tushadi. Mobil ilovalarni yangi boshlovchi yaratuvchisi uchun dizaynerni tanlash eng muhim daqiqalardan biridir, chunki kelajakdagi ilovaning taqdiri uning imkoniyatlariga bog'liq bo'ladi.

Konstruktor Windows, Android va iOS uchun turli janrdagi o'yinlarni yaratishga imkon beradi. Takliflar katta tanlov tayyor joylar, ob'ektlar, belgilar va ovoz dizayni, shuning uchun birinchi Android o'yinini yaratish ko'p vaqt talab qilmaydi. JS va C++ dasturlash tillari bilan tanish bo'lgan foydalanuvchilar o'rnatilgan GML dan foydalanishlari mumkin. Yagona kamchilik shundaki, dastur rus tiliga tarjima qilinmagan.

Xulosa

Android o'yinini yaratish oson emas, lekin juda foydali biznes. Agar siz o'yinni ishlab chiqishga va undan pul ishlashga qaror qilsangiz, avval g'oyani ishlab chiqing. Keyinchalik, "dizayn hujjati" ni yozing va uning salohiyatini maksimal darajada oshirishi mumkin bo'lgan o'yin mexanizmi haqida qaror qabul qiling. Shundan so'ng siz to'g'ridan-to'g'ri konstruktorda dastur yaratishga o'tishingiz mumkin.

Video

Jarayon haqida ko'proq ma'lumot olish uchun android o'yinlarini yaratish, ushbu faoliyat uchun video seriyasini tekshiring.

Birlik - bu eng ko'p ishlaydigan dvigatel zamonaviy o'yinlar turli platformalarda. Dvigatel orqali kompyuterlarda (Windows, Linux, MacOS), mobil telefonlarda, planshet kompyuterlarda (Android, iOS) va hattoki ishlashga yo'naltirilgan o'yinlarni yaratish mumkin. o'yin konsollari PlayStation, Xbox, Nintendo.

Unity-da o'yinlarni qanday yaratish mumkin?

Birlik komponentga yo'naltirilgan kontseptsiyaga asoslanadi. Aslida, har qanday o'yin qo'shimcha komponentlar bilan suyultirilgan ob'ektlar massasidan iborat. Masalan, platformani yaratishda biz GameObject-ni yaratamiz, unga qo'shimcha ravishda xarakterni ko'rsatish uchun mas'ul bo'lgan grafik komponentni va boshqaruv komponentini biriktiramiz, u sichqoncha, klaviatura, joystik yoki boshqa vositalar yordamida xarakterni boshqarishni ta'minlaydi. sensorli ekran. Dvigatel bunday modullar soniga cheklovlar qo'ymaydi. GameObject-ga kerak bo'lganda shuncha ko'p komponent qo'shishimiz mumkin. Dvigateldagi barcha ishlar GameObject-ni yaratishga va ularga mos komponentlarni qo'llashga asoslangan.

Yangi boshlanuvchilar jarayonning ko'rinadigan soddaligi bilan chalg'itishi mumkin, garchi bunday bo'lmasa. Noyob yaratish uchun va mashhur o'yin noldan juda ko'p komponentlarni yozishingiz kerak. Aniqroq aytganda, Unity muhitida bu skript deb ataladi. Mahalliy skript tili - C#, lekin JavaScript va Boo (Pythonning kesilgan versiyasi) ham qisman ishlatiladi. O'z komponentlaringizni yaratish oson emas, hatto bu klassik dasturlash bilan bevosita bog'liq bo'lgan murakkab protsedura deyish mumkin. Dasturlash bo'yicha etarli bilim darajasi bo'lmasa, bu qiyin bo'ladi.

Qo'llab-quvvatlanadigan platformalar

Dvigatelga mos keladigan platformalarning katta ro'yxati tufayli ko'plab yirik loyihalar Unity-ni afzal ko'radi. Tayyor dastur har qanday kompyuter operatsion tizimida, mashhur mobil platformalarda va SmartTV-da ishga tushirilishi mumkin. Nima deyishimiz mumkin, hatto brauzer o'yinlari va muayyan platformalar uchun ilovalar ( Tizen OS kabi) asosan Unityda rivojlangan.

Biroq, bu erda hamma narsa unchalik silliq emas. Agar kerak bo'lsa, siz past darajadagi kodga asoslangan maxsus algoritmlarni yozishingiz mumkin, xuddi shu Android uchun Java tilini to'liq bilishingiz kerak.

Xuddi shu narsa iOS uchun ham amal qiladi. Yana bir bor iOS xususiyati uni faqat Apple-dan kompyuter yoki planshetdan ishlab chiqish mumkin. Macbook yoki shunga o'xshash qurilma bo'lmasa, o'yinning chiqarilishi tezda to'xtaydi va Unity'ning bunga hech qanday aloqasi yo'q, Apple o'zi ham xuddi shunday cheklovni qo'yadi. Xulosa oddiy: agar rejalarda iOS ishlanmasi mavjud bo'lsa, yig'ish uchun oldindan mos qurilmani tanlashingiz kerak.

Dvigatelda o'yinni qanday va qaerda ishlab chiqish kerak?

Biz Windows va Mac OS X da o'yinni ishlab chiqishning uzoq jarayonini amalga oshirishimiz mumkin. Linux uchun muharrirning allaqachon versiyalari mavjud, ammo hozircha biz ularning barqaror ishlashiga ishona olmaymiz. Ishlab chiquvchi ko'p vaqtini Unity muharriri ichida o'yin yaratishga sarflaydi. Skript kodini yozish uchun hali ko'p vaqtimiz bor, biz uni standart MonoDevelop-da yoki istalgan uchinchi tomon muharririda yaratishimiz mumkin. Endi ular Visual Studio'dan, shuningdek, Sublime Textdan faol foydalanadilar, lekin faqat to'g'ri konfiguratsiya bilan.

Hammaga salom! Ushbu dvigatelda qanday o'yin qilishni o'rganganimdan so'ng, men sizga ham xuddi shunday o'rgatmoqchiman. Birinchidan, bizga Unity3d-ning o'zi, har qanday 3D model muharriri va elkalaridan o'sadigan tekis qo'llar kerak.

1. Dasturni o'rganish

Yangi boshlanuvchilar uchun Monodevelop-ni o'rnatishni maslahat beraman! Keling, Birlik nima ekanligini tushunaylik. Unity - bu ko'p platformali o'yinlarni ishlab chiqish muhiti. Uning soddaligi va tushunarliligi tufayli har uchinchi shaxs kamida bir marta o'yin o'tkazgan.

Yuqoridagi skrinshotni ko'rib chiqing:

  • Sahna sizning ijodiy qum qutingizdir.
  • Loyiha - bu erda barcha animatsiyalar va modellar, tovushlar va teksturalar mavjud.
  • Yuqori asboblar panelida modellarni o'rnatish uchun Assets-Import New Asset-ni tanlang. Shuningdek, siz Assets-Import Package-Custom Package ham mumkin. Ikkinchi holda, paket .unity kengaytmasida bo'lishi kerak.
  • Ierarxiya - sahnadagi barcha ob'ektlar. U erda siz ob'ekt uchun ota-onalarni yaratasiz. Ob'ektni ierarxiya menyusida boshqasiga o'tkazing va u biriktiriladi. Natijada bir turdagi papka bo'ladi.
  • Asboblar paneli - asboblar ro'yxati. U erda siz 2D, 3D rejimini yoqishingiz mumkin.
  • Inspektor - ob'ektning xususiyati, bu erda siz animatsiyalar, skriptlar va boshqalarni qo'shasiz. U erda asboblardan foydalanishingiz mumkin: kamerani harakatlantirish, ob'ektni siljitish, cho'zish, ob'ektni aylantirish.


Endi siz ob'ekt menyusini ko'rasiz, unda siz animatsiya, skriptlar va boshqalarni qo'shishingiz mumkin.

O'ylaymanki, ushbu menyu bilan siz muammoga duch kelmaysiz.
Har qanday ob'ektni yaratish uchun bosing.

Umuman olganda, biz dasturni o'rganib chiqdik, tez orada o'z o'yinlarimizni yozish mumkin bo'ladi.

2. Oddiy o'yin yarating

Birinchidan, Yaratish-Terrein hududini yarataylik. O't va daraxtlarni qo'shing. O'ngdagi erga bosish orqali oyna paydo bo'ladi, daraxtlarni, o'tlarni tanlang.


Shuningdek, tog'lar va tepaliklarni yarating. Keyin loyihaga Characher kontroller paketini yuklang. Keyin biz oynada Standard assets-Characters controller loyihasi bilan qidiramiz va birinchi shaxs ko'rinishini (kapsula) yoki uchinchi shaxs ko'rinishini (mexanik) tanlaymiz.
Agar birinchi odam bo'lsa, uni erga qo'ying. Agar uchinchidan bo'lsa, unda siz animatsiyani yuklab olishingiz kerak. Men shuningdek, sahna yoritgichini Yaratish-Directional Light ga o'rnatishni tavsiya qilaman.


Musiqa qo'shish uchun uni kerakli elementga torting.
O'yin tayyor, lekin uni qanday kompilyatsiya qilish kerak?

Buning uchun File-Build sozlamalari-pleyer sozlamalariga o'ting (yorliq va nom uchun). Platformani tanlang va voila, siz tugatdingiz. Buning uchun siz Android SDK ni o'rnatishingiz kerak. Ammo u erda siz SDK bilan jildni belgilashingiz kerak va sizga nafaqat SDK, balki kerakli darajadagi API kerak (masalan, Android 4.2 da API 17 mavjud). Misol uchun, o'yin Android 4.0+ da bo'lishi uchun siz ushbu API'larni o'rnatishingiz kerak.

Keyingi maqolada men sizga Android yoki iOS uchun boshqaruv elementlarini qanday sozlashni aytib beraman va skriptlarni o'zingiz yozishni o'rganaman.

Ko'rishlar soni: 19 374

Unreal Engine yordamida Android-da o'z o'yiningizni qanday yaratishingiz mumkinligi haqida gaplashdik. Ushbu maqolada biz yana bir mashhur o'yin ishlab chiqish mexanizmini ko'rib chiqamiz - birlik.

Unity - indie ishlab chiquvchilari orasida juda mashhur vosita. Aslida, bu sizni rivojlantirishga imkon beruvchi o'zaro faoliyat platformali dvigateldir 3D- va 2D- o'yinlar. Unity-ni boshqa dvigatellardan ajratib turadigan xususiyat bu yangi boshlanuvchilar uchun past kirish chegarasi va professionallar uchun boy asboblar to'plamiga ega. Kross-platforma ish stoli o'yinlaridan tortib mobil o'yinlargacha bo'lgan har qanday platforma uchun ilovalarni ishlab chiqish imkonini beradi.

Alohida-alohida, obuna tizimini eslatib o'tish kerak, chunki Unity mutlaqo bepul mahsulot emas. Bir nechta obuna turlari mavjud:

  • Shaxsiy. Dvigatelning barcha asosiy xususiyatlarini o'z ichiga olgan bepul versiya. U quyidagi cheklovga ega: yillik daromad yoki yig'ilgan mablag'lar miqdori oshmasligi kerak 100000$ .
  • Bundan tashqari. Per Oyiga 35 dollar turli xil hisobotlar va tahlillar taqdim etiladi, shuningdek ekranni o'zgartirish imkoniyati; 20% - xaridlar uchun chegirma Aktivlar do'koni va turli xil kichik imtiyozlar. U quyidagi cheklovga ega: yil uchun daromad yoki jalb qilingan mablag'lar miqdori oshmasligi kerak 200000$ .
  • Pro. Per Oyiga $125 versiyaning barcha afzalliklarini o'z ichiga oladi Bundan tashqari va qo'shimcha ravishda professional xizmat va yuqori darajadagi yordam. Aylanma yoki mablag'lar miqdori bo'yicha cheklovlar yo'q.
  • Biznes uchun alohida versiyalar (yirik kompaniyalar tomonidan qo'llaniladi).

Shunday qilib, kichik byudjetli indie ishlab chiquvchilari versiyadan mamnun bo'lishlari kerak Shaxsiy yoki Bundan tashqari aks holda siz obuna bo'lishingiz kerak bo'ladi Pro. Ushbu maqolada biz foydalanamiz bepul versiya birinchi yugurish uchun.

1-qadam Unity-ni o'rnating

Unity-ni o'rnatishni boshlash uchun siz Unity Store veb-saytiga o'tishingiz kerak, u erda sizdan obuna turini tanlashingiz so'raladi. Yuqorida aytib o'tilganidek, biz tanlaymiz Shaxsiy.

Keyin sizdan foydalanish shartlarini qabul qilishingiz va o'rnatuvchini yuklab olishingiz so'raladi. Siz ham tekshirishingiz mumkin tizim talablari Unity bilan ishlash.

O'rnatuvchini ishga tushirgandan so'ng, sizdan qaysi komponentlarni o'rnatishni tanlashingiz so'raladi. Biz Android ilovasini yaratishimiz kerak bo'lganligi sababli, biz uchun katakchani belgilaymiz Android Build qo'llab-quvvatlash. Bundan tashqari, agar xohlasangiz, Unity o'rniga o'rnatishingiz mumkin Visual Studio hamjamiyati 2017 dasturlash uchun C#.

Shundan so'ng, faqat o'rnatish yo'lini tanlash va Unity-ni o'rnatishni boshlash qoladi.

2-qadam: Birlikni ro'yxatdan o'tkazish va sozlash

O'rnatish va Unity-ni ishga tushirgandan so'ng, bizdan hisob qaydnomamiz bilan tizimga kirish so'raladi.

Keyin yana sizdan obuna tanlashingiz so'raladi, biz ham Shaxsiyga e'tibor qaratamiz. Bunday holda, kompaniyaning yillik daromadi 100 000 dollardan kam ekanligini yoki Unity o'quv maqsadlarida ishlatilishini tasdiqlashingiz kerak bo'ladi.

Oxirida kichik so'rov o'tkazish taklif etiladi, unda siz nima qilayotganingiz va Unity-ni qanday maqsadda o'rnatganingizga javob berishingiz kerak.

Qadam 3. Yangi loyiha yarating

Unity-ni sozlaganimizdan so'ng, biz loyihani tanlash / yaratish ekraniga o'tamiz. bu yerni bosing Yangi yangi loyihangizni yaratish uchun.

Shundan so'ng, paydo bo'lgan oynada sizdan loyiha nomini va u joylashgan katalogni kiritish so'raladi. Shuningdek, katakchani belgilashni unutmang 3D muharriridan 3D rejimida foydalanish uchun.

Buni tugatgandan so'ng, bosing Loyiha yaratish loyiha yaratish uchun. Shundan so'ng, oldindan yaratilgan sahna bilan muharrir oynasi ochiladi.

Keling, hozircha dasturlashning nozik jihatlari bilan shug'ullanmaylik va tugallangan o'yinni misol qilib olaylik. Buning uchun bor Aktivlar do'koni, unda juda ko'p miqdordagi tayyor modellar, animatsiyalar, tovushlar (va hatto o'yinlar), ham pullik, ham bepul.

Asset do'konini ochish uchun menyuda kerak Oyna tanlang Aktivlar do'koni(tugmalar birikmasi ctrl-9).

Do'kon oynasi ochiladi. Qidiruv satriga kiriting " Flappy bird uslubidagi o'yin namunasi" va biz loyihamizda foydalanadigan bepul misolni oching.

Bosish Yuklab olish va shuning uchun uni yuklab olib, keyin uni loyihangizga import qilishingiz mumkin. Buning uchun bosing Import, shundan so'ng loyiha sozlamalari importdan keyin o'zgartirilishi haqida ogohlantirish paydo bo'ladi.

Importga rozi bo'lganingizdan so'ng, siz qaysi komponentlarni import qilishni tanlashingiz kerak bo'lgan oynani ko'rasiz. Hammasini tanlang va ustiga bosing Import.

Import tugallangach, siz loyiha brauzerida yangi fayllarni ko'rasiz. Bu o'yin fayllari. Sahnani tahrirlovchida ochish uchun kengaytiring Flappy qush uslub - sahnalari va ikki marta bosing Asosiy.

Natijada, o'yin sahnasi 3D muharriri oynasida paydo bo'ladi.

Tugmani bosish orqali Unity-da o'yin qanday ishlashini tekshirishingiz mumkin o'ynash muharrir oynasi ustida.

4-qadam Android vositalarini sozlang

Eslatma: foydalanayotgan bo'lsangiz android studiyasi, keyin sizda allaqachon hamma narsa o'rnatilgan zarur komponentlar va shuning uchun keyingi bosqichga xavfsiz o'tishingiz mumkin.

Olingan o'yinni Android-da yig'ish uchun siz quyidagi vositalarni o'rnatishingiz kerak:

  • Java Development Kit (JDK). Siz uni Java veb-saytidan yuklab olishingiz mumkin. Havolani bosish orqali siz eng yuqori qismida ko'rasiz Java platformasi (JDK), ustiga bosing Yuklab olish yozuvi yonida, keyin o'zingizni tanlang operatsion tizim va yuklab olishni boshlang. Shundan so'ng, faqat o'rnatuvchining ko'rsatmalariga amal qiling.
  • Android SDK. eng ko'p oddiy tarzda so'nggi versiyani o'rnatish uchun bu SDK taqdim etiladigan Android Studio dasturini yuklab olish kerak. Buning uchun Android Studio veb-saytiga o'ting va bosing Android Studio dasturini yuklab oling. Android Studio o'rnatuvchisi Android rivojlanishi uchun zarur bo'lgan asosiy Android SDK komponentlarini o'rnatadi.

Qadam 5. Loyihani ishga tushirish uchun tayyorlang

Birinchidan, ishlab chiqish platformasini Android-ga o'zgartirishingiz kerak. Buning uchun Unity-da Fayl menyusini oching va Sozlamalarni yaratish-ni tanlang.

Ko'rsatilgan oynada tanlang Android va keyin bosing platformani almashtirish.

Platforma kaliti bizga Android ilovasini yaratishimizni aytadi. Bu shuni anglatadiki, biz dasturni yaratganimizda, Unity yaratadi APK fayli. Platformani almashtirish ham Unity-ni loyihadagi barcha aktivlarni qayta import qilishga majbur qiladi. Bu kichik loyihada ko'p vaqt talab qilmaydi, lekin shuni yodda tutingki, bu operatsiya yirik loyihalarda uzoq vaqt talab qilishi mumkin.

Endi biz dastur uchun paket nomini berishimiz kerak.

Eslatma: Paket nomi dastur uchun noyob identifikator bo'lib, formatda teskari DNS uslubida yoziladi com.CompanyName.ProductName. Ilovani nashr qilgandan so'ng Google Play paket nomini endi o'zgartirib bo'lmaydi.

Buning uchun menyuga o'ting Tahrirlash va tanlang Loyiha sozlamalari - O'yinchi.

Unity-ning o'ng tomonida dastur versiyasi, maqsad va minimal SDK, piktogramma tanlash va boshqalar kabi juda ko'p turli xil sozlamalar bilan oyna ochiladi. Bu erda bizga blokda kerak Boshqa Sozlamalar toping Identifikatsiya va maydonga paket nomini o'rnating paket nomi. Agar xohlasangiz, boshqa sozlamalarni ham o'zgartirishingiz mumkin.

Endi faqat Android SDK va JDK ga yo'lni belgilash qoladi. Buning uchun menyuga o'ting va tanlang Tahrirlash - Afzalliklar.

Ko'rsatilgan oynada ga o'ting Tashqi asboblar va dalalarda SDK va JDK tegishli yo'llarni belgilang va keyin oynani yoping.

6-qadam: Ilovani yaratish va ishga tushirish

Birinchi Unity ilovangizni yaratish vaqti keldi. Buning uchun menyudan tanlang Fayl - Qurilish sozlamalari. Oyna ochiladi, unda siz yig'moqchi bo'lgan sahnani qo'shishingiz kerak bo'ladi. Ushbu sahna muharrirda allaqachon ochiq bo'lganligi sababli, shunchaki bosing Ochiq sahnalarni qo'shing uni assambleyaga qo'shish uchun uni qo'shgandan so'ng uni sahnalar ro'yxatida ko'rasiz.

Faqat bosish qoladi Qurmoq, shundan so'ng Unity dasturni yaratishni boshlaydi. Undan oldin sizdan to'plangan dastur fayllari saqlanadigan papkani, shuningdek, APK faylining nomini tanlashingiz so'ralishi mumkin.

Eslatma: yoqilgan bu daqiqa agar sizda Android SDK-da alfa versiyasi o'rnatilgan bo'lsa Qurilish asboblari(versiya 28.0.0-rc1), Gradle qurishda xatolik yuz beradi. Buni tuzatish uchun ushbu versiyani Android SDK dan olib tashlang.

Natijada, o'rnatilgan APK fayli siz ko'rsatgan papkada paydo bo'ladi, emulyatorga yoki haqiqiy qurilmaga o'rnatishga tayyor.

Keling, o'rnatilgan APK ichida nima borligini ko'rib chiqaylik. Buning uchun biz yordamchi dasturdan foydalanamiz APK tahlilchisi Android Studio-ga kiritilgan ,

Siqilmagan APK fayl hajmi 21,1 MB, siqilgan holda 20,9 MB. Grafikdan ko'rinib turibdiki, hajmning katta qismi Unity tomonidan qo'shilgan uchinchi tomon kutubxonalari tomonidan egallangan. Keyin ichkariga aktivlar yig'ilgan sahnada foydalaniladigan barcha resurslar joylashgan. Fayl classes.dex faqat o'z ichiga oladi 89 sinflar va 479 usullari.

Bundan tashqari, agar qarasangiz AndroidManifest.xml, ilova bitta faoliyatdan iborat.

Xulosa

Ana xolos. Ushbu maqolada biz Unity-ni qanday o'rnatish va sozlashni o'rgandik, shuningdek, birinchi Android ilovamizni yaratdik.

Qanday qilib Android uchun oddiy o'yin yoki dasturni tez va nisbatan oson yaratish mumkin? Bu haqda Unity3D dvigateli bilan ishlashga bag'ishlangan quyidagi maqolada o'qing.

Kompyuter o'yinlarini o'ynaysizmi? Agar shunday bo'lsa, unda, albatta, keyingi blokbaster o'yinini o'tkazish jarayonida sizda ba'zida shunday fikrlar paydo bo'ladi: "Ammo bu erda men buni noto'g'ri qilgan bo'lardim!". O'zingiz dasturchi bo'lishni xohlaysizmi? Unda men sizga kichik, lekin juda qiziqarli "sarguzasht" taklif qilaman;)

Dvigatel nima va u nima uchun kerak?

Ilgari, birinchi kompyuterlar, o'yinlar va dasturlar "hardkor" deb ataladigan kunlarda yaratilgan. Ya'ni, to'liq rivojlanish uchun o'z dasturlash tilini puxta biladigan va oddiy bloknotda deyarli butun o'yinni (shu jumladan pikselli grafik va maxsus effektlarni) yoza oladigan juda tajribali dasturchi bo'lishi kerak edi. Bunday odamlar kam edi va ular juda qadrlangan (va hozir ham qadrlanadi) ...

Bugungi kunda dasturlash mavzusiga kirish chegarasi sezilarli darajada kamaydi. Va bu nafaqat adabiyotlar va barcha turdagi o'quv materiallarining mavjudligi, balki tobora soddalashtirilgan rivojlanish jarayoni bilan ham yordam beradi. Hozirgi vaqtda haqiqiy "hardkor" odamlarni uchratish juda kam, chunki "dvigatellar" deb ataladigan juda qulay rivojlanish muhitlari paydo bo'ldi.

Dvigatelning mohiyati shundaki, u barcha kerakli o'yin ob'ektlarini soddalashtirilgan vizual rejimda import qilish, ularni virtual sahnada tartibga solish va ularning barcha parametrlarini sozlash imkonini beradi. Ya'ni, dasturchining vazifasi faqat o'yin mantiqini to'g'ri yozishdir!

Biroq, eski "hardkor" tarzda yozilgan hamkasbi bilan solishtirganda, loyihaning hajmini biroz oshirish (ba'zan hatto bir necha marta!) bilan ishning qulayligi uchun to'lash kerak. Aynan shuning uchun ba'zi ishlab chiquvchilar dvigatellarni yoqtirmaydilar yoki o'zlarini yozishga harakat qilishadi, bunda faqat kerakli komponentlar qo'llaniladi ...

Lekin siz va men haqiqiy dasturchilardan uzoqmiz :) Shuning uchun, mashhur va kuchli Unity3D dvigateli asosida Android uchun oddiy o'yin yarataylik.

Unity3D-da loyihani boshlash

Xo'sh, nima uchun biz Unity3D dan foydalanishga qaror qildik:

  • to'liq huquqli 2D va 3D o'yinlarni yaratish qobiliyati;
  • har qanday qurilma uchun tayyor o'yinni kompilyatsiya qilish qobiliyati;
  • dvigatelni boshqarishning nisbatan qulayligi;
  • plaginlarni ulash orqali funksionallikning yaxshi kengaytirilishi;
  • o'yinning yakuniy yig'ilishining nisbatan kichik hajmi (boshqa dvigatellar bilan solishtirganda).

Unity3D-ning asosiy kozi, albatta, uning ko'p qirrali va ko'p platformaliligi. O'yin tugadi(ehtimol, biroz sozlash bilan) Siz kompyuterga (Windows, Linux yoki MacOS), Android, PlayStation yoki XBox-ga portlashingiz mumkin! Buni amalga oshirish uchun biz faqat dvigatelning o'zini yuklab olishimiz kerak, aytmoqchi, bir gigabaytdan ko'proq "og'irlik" va kerakli SDK (agar ishlab chiqish rejalashtirilgan bo'lsa). mobil platformalar yoki konsol). Agar siz Windows uchun o'yin yaratmoqchi bo'lsangiz, unda hech narsa yuklab olishingiz shart emas, lekin biz Android uchun o'yin yaratmoqchi bo'lganimiz sababli, Android SDK (Dasturiy ta'minotni ishlab chiqish to'plami) ni ham yuklab olishimiz kerak bo'ladi. U bilan ishlash qulayligi uchun SDK-ni ZIP arxiviga yuklab olishingizni maslahat beraman.

Har bir narsa yuklab olingandan so'ng, siz o'zingiz uchun qulay bo'lgan istalgan Android SDK jildiga o'chirishingiz mumkin, so'ngra Unity3D-ni o'zi o'rnatishni davom ettiring. U har qanday oddiy Windows dasturi kabi o'rnatiladi, shuning uchun o'rnatishda hech qanday muammo bo'lmasligi kerak. O'rnatishdan so'ng, vosita ishga tushadi va biz birinchi navbatda yangi loyihani yaratishimiz kerak:

Buning uchun biz barcha salomlash va kirish oynalarini yopishimiz kerak, so'ngra "Fayl" menyusidan "Yangi loyiha" ni tanlang. Ochilgan oynada (yuqoridagi skrinshotga qarang) bizdan loyihani saqlash papkasini ko'rsatish so'raladi (uning nomi loyiha nomi bilan bir xil bo'ladi), ba'zi standart funktsiyalar to'plamini import qilish (bizga ularga kerak emas) va ish rejimi. Rejim sifatida 2D ni tanlang va "Yaratish" tugmasini bosing. Bu ishning tayyorgarlik qismini yakunlaydi :)

Dvigatel interfeysi va loyiha ierarxiyasi

Loyihani yaratgandan so'ng, u Unity3D ish maydoniga yuklanadi:

Ushbu ish maydonining o'zi modulli tuzilishga ega va siz xohlaganingizcha harakatlantirilishi mumkin bo'lgan bir nechta ichki oynalardan iborat. Men uni shunday o'rnatdim (chapdan o'ngga va yuqoridan pastga):

  1. Ierarxiya oynasi - sahnadagi faol va nofaol ob'ektlarning ierarxik holatini ko'rsatadi. Odatiy bo'lib, ro'yxatdagi yagona ob'ekt asosiy kameradir.
  2. Sahna oynasi - butun o'yin sahnasini va undagi ob'ektlarni (jumladan, kameralar, tovushlar, teksturalar va boshqalar) aks ettiradi.
  3. Inspektor oynasi - ierarxiyada yoki sahnada tanlangan ob'ektning barcha xususiyatlarini aks ettiradi va ularni tahrirlash, to'ldirish yoki o'chirish imkonini beradi.
  4. O'yin oynasi - kameraga ko'rinadigan o'yin dunyosini ko'rsatadi va virtual o'yin sinov oynasining o'lchamini piksellarda tanlash imkonini beradi. Shuningdek, o'yin oynasini to'liq hajmda kengaytirishni faollashtirishga imkon beradi (O'yinda maksimal darajaga ko'tarish) va ishlab chiquvchi uchun turli xil ma'lumotlarni ko'rsatishni yoqish / o'chirish.
  5. Loyiha va konsol oynalari. Loyiha oynasi loyiha resurslari boʻylab harakatlanish uchun ishlatiladi: yuklangan tasvirlar, tovushlar, modellar va boshqalar. Shuningdek, ushbu oyna (kontekst menyusi) yordamida siz har xil turdagi va skriptlarning yangi bo'sh o'yin ob'ektlarini yaratishingiz mumkin. Konsol oynasi xato xabarlarini (qizil), ogohlantirishlarni (sariq) va siz so'ragan turli nosozliklarni tuzatish ma'lumotlarini (kulrang) ko'rsatish uchun ishlatiladi.
  6. Aktivlar yorlig'i oynasi inspektor oynasining pastki qismi bo'lib, u Loyiha oynasida tanlangan ob'ekt yoki faylni oldindan ko'rishni ko'rsatadi.

Yuqoridagilarning barchasiga qo'shimcha ravishda, yuqori markazdagi uchta tugmachaga e'tibor bering. Ular sizning loyihangizni boshlashga, uni to'xtatib turishga imkon beradi (masalan, ierarxiyada nima qilinayotganini ko'rish uchun disk raskadrovka paytida foydali bo'ladi) va shunga mos ravishda uni o'chirish.

Biz musiqa asbobining simulyatorini yaratamiz: "tabla" deb nomlangan hind xalq barabanlari, shuning uchun boshlash uchun biz loyihada tovushlar va rasmlar saqlanadigan ikkita bo'sh papka yaratamiz. Project Navigator oynasidagi kontekst menyusiga qo'ng'iroq qilib, "Yaratish" ro'yxatidan "Papka" bandini tanlab, yangi papka yaratishingiz mumkin.

Bu erda ushbu papkalarni qanday nomlash kerakligi haqida bir necha so'z aytishga arziydi. Bizning simulyatorimiz kabi oddiy o'yin uchun, qoida tariqasida, papkalarni xohlaganingizcha "nomlash" mumkin, ammo kamida ikkita nom bor, ulardan foydalanmaslik yaxshiroqdir, chunki ular dvigatel tomonidan saqlangan. Bular Resurslar va Plaginlar nomlari. Katta loyihalarda Resurslar papkasi darhol yaratiladi va barcha o'yin "ehtiyot qismlari" (rasmlar, tovushlar, modellar, teksturalar va prefablar) allaqachon saqlangan (papkalar bo'yicha saralangan). Plaginlarda, nomidan ko'rinib turibdiki, barcha qo'shimcha uchinchi tomon funktsiyalar to'plami ("aktivlar" (aktivlar) deb ataladi) saqlanadi, ulardan bir nechtasi Asset do'konida - Unity3D kengaytmalari do'konida mavjud.

Fayllarni import qilish va o'yin ob'ektlarini yaratish

Yangisini yaratishdan oldin o'yin loyihasi uning ishlashi uchun zarur bo'lgan barcha fayllarni oldindan tayyorlash maqsadga muvofiqdir. Bizning holatlarimizda bu fayllar rasm va tovushlardir. Ularni loyihaga import qilishning eng oson yo'li ularni kerakli jildga sudrab olib tashlashdir. Rasmlardan boshlaylik...

Rasmlar "Tasvirlar" jildida paydo bo'lgandan so'ng, ularni biroz o'zgartirish kerak:

Gap shundaki, sukut bo'yicha Unity3D loyihaga qo'shilgan barcha tasvirlarni sifatni yo'qotgan holda siqib chiqaradi. Agar bizga bunday yo'qotish kerak bo'lmasa (ayniqsa, HD grafikali o'yinlar uchun to'g'ri keladi), unda biz har bir tasvirni tanlab olishimiz kerak va Inspektor oynasida "Format" parametrining qiymatini "Sukut bo'yicha" "siqilgan" dan "Truecolor" ga o'zgartiring. "tab. Bundan tashqari, "Maks. o'lcham" parametrini o'zgartirishingiz kerak bo'lishi mumkin, agar u haqiqiy tasvir kengligidan kichikroq bo'lsa (standart 1024 piksel). Barcha o'zgarishlardan so'ng ularni qo'llash uchun "Ilova" tugmasini bosishni unutmang. Agar kerak bo'lsa, biz boshqa barcha tasvirlar uchun shunga o'xshash harakatlar qilamiz.

Keling, rasmlarimizdan o'yin ob'ektlarini yarataylik. Buni amalga oshirish uchun kerakli rasmni Ierarxiya oynasiga sudrab borish kifoya. Rasm yoki 3D model avtomatik ravishda O'yin ob'ektiga aylantiriladi va kamera oldidagi boshlang'ich koordinata nuqtasida ko'rsatiladi.

Avvalo, biz fon tasvirini qo'shdik, u to'liq ekranda ko'rsatilishi kerak. Ierarxiya oynasida kamerani tanlash va uning ramkasi qanday ko'rsatilishiga qarab, bu shunday yoki yo'qligini tekshirishingiz mumkin. Yuqoridagi skrinshotda siz bizning fonimizning bir qismi kamera ko'rinishidan tashqarida qolayotganini ko'rishingiz mumkin, shuning uchun biz ushbu ko'rinishning o'lchamini to'g'ridan-to'g'ri sahnada freymni sudrab yoki Inspektor oynasida "O'lcham" parametrini tahrirlash orqali sozlashimiz kerak. Bizning holatlarimizda standart qiymatni (5) 5.4 ga o'zgartirishimiz kerak edi.

Bo‘ldi, biz endi kameraga tegmaymiz, qolgan rasmlarni qo‘shib, sozlaymiz. Qo'shish paytida ularning ba'zilari bizning o'yinimiz uchun juda katta ekanligini ko'ramiz. Siz ularni jismoniy jihatdan grafik muharrirda yoki vosita yordamida kamaytirishingiz mumkin. Keling, oxirgi usulni sinab ko'raylik. Buni amalga oshirish uchun ierarxiya oynasida rasmni tanlang va Inspektor oynasida X va Y koordinatalari uchun "Mashtab" qiymatlarini 1 dan 0,5 gacha o'zgartiring (ya'ni yarmiga kamaytiring). Xuddi shu joyda, bir-birining ustiga chiqishni oldini olish uchun barcha o'yin ob'ektlariga (fondan tashqari) qatlamlarning nolga teng bo'lmagan tartibini belgilash maqsadga muvofiqdir (Qatlamdagi tartib):

Rasmlardan o'yin ob'ektlarini tayyorlashning oxirgi bosqichi ularga "osilgan" kollayderlar bo'ladi. Unity3D da kollayderlar ob'ektlar orasidagi o'zaro ta'sir detektorlari sifatida ishlatiladi. Ya'ni, aslida bizning rasmimizga virtual qobiq qo'yilgan bo'lib, u unga teginishni qayd etadi.

Ob'ektga kollayder qo'shish uchun uni Ierarxiya oynasida tanlang va keyin Inspektor oynasida "Qo'shish komponenti" tugmasini bosing. Ko'rsatilgan komponentlar ro'yxatida biz Physics 2D (oddiy 3D fizika bizning rejimimizda ishlamaydi) ni qidirmoqdamiz va barcha variantlardan "Circle Collider 2D" biz uchun eng mos keladi. Biz uni tanlaymiz. Bizning ob'ektimiz atrofida yashil chiziq paydo bo'ladi, u kollayderning chegaralarini aks ettiradi. Bizning kollayderimiz faqat sekin urishlarni qayd etishi va atrofdagi o'yin maydoni bilan aloqa qilmasligi uchun "Triggermi" katagiga belgi qo'yish kifoya:

Shu kabi harakatlar qolgan barcha ob'ektlar uchun takrorlanadi. Faqat bizning fonimiz boshqa ob'ektlardan farq qiladi. Buning uchun biz Box Collider 2D-ni qo'llaymiz va kollayder va fonning o'zini fonga surish uchun Z pozitsiyasini noldan kattaroq qilib qo'yamiz (bu bizga keyinroq kerak bo'ladi).

Ovoz bilan ishlash

Unity 3D-da ovoz bilan, birinchi qarashda, hamma narsa biroz chalkash. Ammo keling, buni tartibda aniqlashga harakat qilaylik :)

Avvalo, biz barcha tovushlarni Sounds papkasiga sudrab olib, ularni biroz o'zgartirishimiz kerak:

Agar barcha tovushlaringizning ovoz balandligi dastlab sozlangan bo'lsa, siz qilishingiz kerak bo'lgan yagona narsa 3D tovushni qayta ishlashni o'chirib qo'yishdir. 3D o'yinlarda bu qayta ishlash kamera unga yaqinlashganda tovush manbasining yondashuvini taqlid qilish uchun kerak. Ammo 2D-da bizga bu kerak emas, shuning uchun biz har bir tovushni navbatma-navbat tanlaymiz va undan "3D tovush" belgisini olib tashlaymiz.

Endi biz o'yin ob'ektlariga tovush qo'shishni boshlashimiz mumkin. Buning uchun biz har bir tugmani navbatma-navbat tanlashimiz va unga "Audio" bo'limidan yangi "Audio Source" komponentini qo'shishimiz kerak. Komponent qo'shilgandan so'ng, tegishli "Audio klip" tugmasini tanlang va sukut bo'yicha faol bo'lgan "Uyg'ongan holda ijro etish" katagiga belgini olib tashlang (u paydo bo'lganda ijro eting):

Barcha tovushlar o'ng tugmachalarga biriktirilganda, qiziqarli qism - skript yaratish vaqti keldi ...

Birinchi skript

Birinchi skriptimizni tahlil qilishni boshlashdan oldin, Unity 3D-dagi skript tizimi haqida bir necha so'z aytish kerak.

Unity bir vaqtning o'zida uchta tilda kod yozish imkonini beradi: JavaScript (aniqrog'i, unityScript-ning biroz o'zgartirilgan versiyasi), C # va Boo. Bir qator kitoblar va qo'llanmalarda siz yangi boshlanuvchilar uchun Unity-da skript yaratish JavaScript-ni misol tariqasida o'zlashtirish osonroq degan fikrni topishingiz mumkin. Biroq, bu til boshqalar kabi qulay emas va kelajakda siz qayta o'rganishingiz kerak bo'ladi. Shuning uchun, C # o'rganish bilan darhol boshlash yaxshidir (Boo ham yaxshi, lekin unda bir nechta o'quv materiallari mavjud).

Endi kodni qayerga yozish haqida. Unity 3D da standart kod muharriri MonoDevelop IDE hisoblanadi. Ushbu ishlab chiqish muhitining afzalligi shundaki, unda standart usullar, sinflar va funktsiyalarni tezda kiritish uchun maslahatlar, shuningdek sintaksisni tekshirish tizimi mavjud. Biroq, men uchun kamchilik kattalik va yuqori resurs intensivligi edi. Yaxshiyamki, Unity sozlamalarida siz har qanday narsani matn muharriri sifatida sozlashingiz mumkin, shuning uchun men o'zim uchun engil va funktsional Notepad ++ ni "osib qo'ydim" (deyarli barcha misollar unda ko'rsatiladi).

Va oxirgisi. Tabiiyki, dvigatelning barcha nozik tomonlarini o'zlashtirishda ma'lumotnomalarsiz siz uzoqqa bormaysiz, shuning uchun Unity 3D mavzusidagi bir nechta oqilona Internet-resurslar ro'yxati:

  • http://docs.unity3d.com/ru/current/Manual/UnityManualRestructured.html - rus tiliga qisman tarjima qilingan dvigatel uchun rasmiy qo'llanma (yaqinda paydo bo'lgan va ba'zan beqaror);
  • http://docs.unity3d.com/ru/current/ScriptReference/index.html - ingliz tilidagi rasmiy skript uchun ma'lumotnoma;
  • http://unity3d.ru/distribution/index.php - Unity 3D ishlab chiquvchilari uchun rus forumi;
  • http://habrahabr.ru/post/141362/ - Habrahabrda uch o'lchovli o'yinlar yaratish bo'yicha bir qator darslar;
  • http://msdn.microsoft.com/ru-ru/library/618ayhy6.aspx - Microsoft-ning rus tilidagi rasmiy C# ma'lumotnomasi.

Xo'sh, uni uzoq vaqt sudrab ketmaslik uchun men darhol birinchi skriptni yaratishni taklif qilaman. Skriptlar ostida, agar ular juda ko'p bo'lsa, alohida papkani ajratish yaxshiroqdir, lekin bizning o'yinimiz oddiy bo'ladi, shuning uchun biz to'g'ridan-to'g'ri loyihaning ildiz papkasida skript yaratishimiz mumkin. Buning uchun Loyiha oynasidagi kontekst menyusiga qo'ng'iroq qiling, Yaratish ro'yxatini tanlang va "C# skript" tugmasini bosing. Keling, yangi skriptimizga nom beramiz, masalan, Sounds va uni ikki marta bosish bilan ochamiz. Yangilash va Boshlash standart usullarini olib tashlab, keyin keraklilarini ro'yxatdan o'tkazgandan so'ng biz quyidagi skriptni olamiz:

Agar siz muharrirni qayta sozlamagan bo'lsangiz, bizning skriptimiz MonoDevelop-da ochiladi. Keling, uning tuzilishini ko'rib chiqaylik ...

Aslida, har bir C# skripti uchta asosiy qismdan iborat:

  1. Eng yuqori qismida skript ishlashi uchun ulanishi kerak bo'lgan kutubxonalar ko'rsatilgan (masalan, "Unity.Engine-dan foydalanish" dvigatelning o'zi ishini bog'laydi va "System.Collections-dan foydalanish" - raqamni o'z ichiga olgan kutubxona. skriptning turli tizimlar ostida ishlashi uchun o'rnatilgan sinflar).
  2. Sinf va o'zgaruvchilar deklaratsiyasi. Bu kabi C# da skript tushunchasi yo'q. Buning o'rniga bir qator usullar va funktsiyalarni o'z ichiga olgan "sinf" tushunchasi qo'llaniladi. Garchi, aslida, Unity 3D kontekstida bu deyarli bir xil narsa :) Esda tutish kerak bo'lgan asosiy narsa shundaki, sinf nomi biz skript bergan nomga mos kelishi kerak. C# tilidagi o'zgaruvchilarning o'ziga xos xususiyati shundaki, ular (skriptning o'zida e'lon qilingan vaqtinchaliklardan tashqari) terilishi kerak. Amalda bu o'zgaruvchi uchun kirish darajasi (xususiy yoki ommaviy) va turi (int, float, bool yoki biz skriptda bo'lgani kabi AudioClip) ko'rsatilishi kerakligini bildiradi.Shu bilan birga, har qanday o'zgaruvchi nomi ham bo'lishi mumkin. Yoki darhol unga tegishli qiymat berishingiz mumkin.
  3. Usullar va funktsiyalar to'plami. C# tilidagi usul ma'lum harakatlarni bajaradigan deyarli har qanday funktsiyadir. Asosan, Unity 3D bo'yicha adabiyotlarda ular funktsiyalar deb ataladi, ammo agar biz alohida dasturlash tili sifatida C # haqida gapiradigan bo'lsak, bular, axir, usullar :). Unity'dagi sof funktsiyalar, masalan, ovoz chiqarish, GUI elementlarini chizish va boshqalar uchun standart funktsiyalar bo'lib, ular ichida usullardan foydalaniladi.

Endi skriptning tuzilishini bilgan holda, uning ma'nosini tushunish oson, bu esa quyidagilarga to'g'ri keladi... Sounds sinfida (skript) biz qulaylik uchun AudioClip tipidagi 9 ta o'zgaruvchini nomlar bilan e'lon qilamiz. ularni farqlash. Biz ularni majburiy ravishda ommaviy qilamiz (shaxsiylar muharrirda ko'rsatilmaydi va biz ularga muharrir orqali tovushlarni "osib qo'yishimiz" kerak bo'ladi). Va keyin skriptning tanasida biz "void OnMouseDown ()" standart usulidan foydalanamiz. Ilgari u faqat sichqonchani bosishni qayta ishlash uchun javobgar edi, ammo yangi versiyalarda u sensorli ekranga teginish sifatida ham talqin etiladi. Unda biz bosilgan kollayderlarning nomlarini tekshirish shartlarini yozamiz va ulardan birining bosilishini aniqlasak, tegishli tovushni chiqaramiz (biz standart audio.PlayOneShot(); funksiyasidan foydalanamiz).

Kod yozayotganda, barcha ochilish va yopish qavslarini qo'shishga ehtiyot bo'ling, aks holda siz doimiy ravishda Konsolda xato hisobotlarini olasiz va loyihangizni umuman ishga tushira olmaysiz! Usul va funksiyalar nomlarida bosh harflardan foydalanishga ham e’tibor bering. Ular ko'pincha xatolarga sabab bo'ladi. Va, albatta, barcha belgilarga (nuqta, ikki nuqta va qavs), qisqasi, til sintaksisiga rioya qiling. Avvaliga bu qiyin bo'ladi, lekin vaqt o'tishi bilan siz noldan xatosiz yozishni boshlaysiz!

Skript tayyor bo'lgach, uni tanlang va Inspektor oynasida har bir o'zgaruvchiga boshqa tovushni belgilang. Endi biz skriptimizni sahnadagi ob'ektlarga qo'llashimiz kerak. Buni qilishning eng oson yo'li skriptni to'g'ridan-to'g'ri Ierarxiya ro'yxatidagi kerakli o'yin ob'ektiga sudrab borishdir:

Agar skript to'g'ri tortilgan bo'lsa, u biz uni sudrab olib borgan ob'ekt yonidagi Inspektor oynasida paydo bo'lishi kerak. Shunga ko'ra, biz skriptni o'yinda ovoz berishi kerak bo'lgan barcha ob'ektlarga tortamiz va biz uni ishga tushirishga harakat qilishimiz mumkin. Bizning o'yin tugmachalarimizni bosganingizda, endi, nihoyat, belgilangan ovoz eshitiladi!

GUIga kirish

Aslida, o'yin bizda allaqachon ishlamoqda, ammo qandaydir tarzda u juda "kal". Unda nimadir etishmayapti... Yoki, hech bo'lmaganda, oldimizda turgan ismli yozuv! Boshqacha qilib aytganda, siz qandaydir tushunarli foydalanuvchi interfeysini amalga oshirishingiz kerak.

Aslida, GUI ingliz tilining qisqartmasi. "Grafik foydalanuvchi interfeysi", ya'ni foydalanuvchining grafik interfeysi. An'anaviy ravishda u quyidagi tarkibiy qismlarni o'z ichiga oladi:

  • tugmalar;
  • oyna;
  • matn maydonlari;
  • tasdiqlash qutilari va/yoki radio tugmalari;
  • slayderlar (aylantirish paneli) va boshqalar.

Unity 3D-da bularning barchasi (va hatto undan ham ko'proq narsa) to'liq mavjud. Asosiysi, undan qanday foydalanishni o'rganish! Keling, Unity-ning grafik interfeysi qanday qilib oddiy sarlavha yaratishi mumkinligini ko'rib chiqaylik.

Buning uchun Interface nomli yangi skript yarating va uni quyidagicha o'zgartiring:

Skrinshotdagi skriptni diqqat bilan ko'rib chiqing. Bu erda biz GUIStyle tipidagi faqat bitta umumiy o'zgaruvchini yozamiz, bu biz uchun yangi. Ushbu tur sizga ushbu uslub tayinlangan elementlarning ko'rinishini vizual ravishda o'zgartirishga imkon beradi. Uslublar bir xil turdagi ko'plab interfeys elementlari (masalan, tugmalar) mavjud bo'lganda foydalidir, lekin ular boshqacha ko'rinishga ega bo'lishi kerak.

Keyinchalik, biz quyidagi sintaksisga ega bo'lgan tugmani ("GUI.Button") yaratamiz: shart - 4 koordinata (chap chetidan gorizontal chekinish, yuqori chetidan vertikal chekinish, kenglik, balandlik) - tirnoq ichidagi ko'rinadigan matn va undan keyin. , ixtiyoriy, uslub ko'rsatkichi. Kerakli funksiyalar tugma sharti ichida yoziladi. Bizning holatlarimizda biz ishlab chiquvchilar saytiga o'tishni ro'yxatdan o'tkazdik ("Application.OpenURL("");").

GUI skriptlari har qanday oʻyin obyektlaridan ishlashi mumkin, lekin odatda ularni kameraga “osib qoʻyish” tavsiya etiladi, biz buni skriptni Asosiy kamera obyektiga sudrab olib boramiz. Endi biz uni Ierarxiya oynasida tanlasak, Inspektor oynasida biz uslubimizning umumiy o'zgaruvchisini ko'rishimiz mumkin, uni kengaytirish orqali biz ushbu uslub sozlamalariga to'liq kirish imkoniyatiga ega bo'lamiz!

Biz har qanday vaziyatda fon uchun matn rangi va teksturasini belgilashimiz mumkin (tugma uchun siz uning uchta variantini (Oddiy - normal ko'rinish, Hover - kursorda va Faol - bosganda) ro'yxatdan o'tkazishingiz kerak), to'ldirishni o'rnating va shriftni sozlang. Odatiy bo'lib, Unity 3D-da mavjud bo'lgan yagona shrift Arialdir, ammo siz loyihaga boshqa har qanday shriftni qo'lda yuklashingiz va barcha tegishli parametrlarni o'rnatgan holda "Shrift" maydoniga qo'llashingiz mumkin.

Qiziqarli va ayni paytda unchalik qulay bo'lmagan narsa shundaki, biz loyihani boshlagunimizcha GUI elementlari sahnada ko'rsatilmaydi, shuning uchun har bir elementning parametrlarini sozlash juda ko'p vaqtni talab qilishi mumkin. Keling, loyihani ishga tushiramiz va yuqorida yaratilgan tugma qanday ko'rinishini ko'ramiz:

Shart va statik o'zgaruvchilar bo'yicha interfeysni o'zgartirish

Biz allaqachon ko'p ish qildik, lekin har doim yaxshilanish uchun joy bor :) Shuning uchun men oxirgi misol sifatida oddiy ishlab chiquvchilar odatda o'z o'yinlari va ilovalarini taqdim etadigan yordam oynasini yaratishni taklif qilaman. Buni amalga oshirish uchun tasvirlar bilan papkaga savol belgisi shaklida bunday tugma uchun rasm qo'shing va undan o'yin ob'ektini yarating. Keling, unga kollayderni osib, nomi bilan skript yozamiz, masalan, quyidagi mazmundagi "Yordam":

Ushbu skriptda bizda ikkita o'zgaruvchi mavjud. Birinchi o'zgaruvchi ushbu sinfda tavsiflangan barcha interfeys elementlari uchun ishlatiladigan terini belgilaydi. Yuqorida muhokama qilgan uslublardan farqli o'laroq, terilar nafaqat ular tayinlangan alohida elementning, balki ma'lum bir turdagi barcha elementlarning ko'rinishini bir vaqtning o'zida o'zgartirishga imkon beradi. Bundan tashqari, uslublardan farqli o'laroq, terilar elementlarga tayinlanmaydi, lekin darhol butun usul uchun e'lon qilinadi va boshqa teri e'lon qilinmaguncha ishlaydi. Shuni ham unutmaslik kerakki, terilar nafaqat o'zgaruvchilar sifatida, balki mavjud individual fayllar. Shuning uchun, terini e'lon qilishdan oldin uni darhol kontekst menyusidan "Loyiha" oynasida yaratishingiz kerak: "Yaratish" - "GUI terisi".

Bizda mavjud bo'lgan ikkinchi o'zgaruvchi mantiqiy (yoki boshqacha tarzda Boolean). U faqat ikkita qiymatga ega bo'lishi mumkin: "to'g'ri" (to'g'ri) yoki "noto'g'ri" (noto'g'ri). Ikkilik tabiati tufayli bunday o'zgaruvchi barcha turdagi kalitlarni amalga oshirish uchun juda mos keladi. Bizning holatda, u bizning o'yinimizni tavsiflovchi matnni ko'rsatish uchun javobgar bo'ladi.

Ammo, agar siz diqqat bilan qarasangiz, oxirgi o'zgaruvchining bitta ajoyib parametrga ega ekanligini ko'rasiz - "statik". Ushbu parametrni o'zgaruvchilarga qo'shish ularni statik qilish va boshqa skriptlardan ularga kirish imkonini beradi!

Ammo kodning qolgan qismiga qayting. Bu erda bizga allaqachon tanish bo'lgan "void OnMouseDown()" usuli oddiy shart yordamida "isVisible" o'zgaruvchisi uchun kalit bo'lib xizmat qiladi. Biroq, shartdan keyin boshqa funktsiya mavjud. Ushbu funktsiya ("Debug.Log();") Konsolga bizga kerak bo'lgan o'zgaruvchilarning qiymatlarini "tezda" chiqarish uchun ishlatiladi (biz ularni qavs ichiga qo'shtirnoqsiz kiritamiz). Ko'rib turganingizdek, funktsiya ichida siz o'zgarmas matnni (tirnoq ichida yozilgan) va o'zgaruvchilarni (tirnoqsiz) birlashtira olasiz. Asosiysi, barcha ma'lumotlar o'rtasida "+" belgisi bo'lishi kerak.

Keyinchalik skript matnida biz interfeysni chizish usuliga egamiz ("void OnGUI()()"), uning ichida biz yangi teri deklaratsiyasini ko'ramiz ("GUI.skin = HelpSkin;") va yangi. GUI.Box tipidagi interfeys elementi. Tugmachadan farqli o'laroq, quti nofaol element bo'lib, odatda turli matn yoki grafik ma'lumotlarni ko'rsatish uchun xizmat qiladi.

Quti uchun joylashuvni qanday o'rnatganimizga e'tibor bering. Bu erda barcha qiymatlar to'g'ridan-to'g'ri emas, balki matematik ifodalar yordamida ko'rsatilgan, bu aslida veb-ishlab chiqishda "suyuqlik sxemasi" ning analogidir. Muammo shundaki, turli xil ekran o'lchamlarida GUI elementlarining aniq o'lchamlarini belgilashda ular moslashmaydi va juda kichik yoki aksincha, katta bo'lishi mumkin. Dvigatelning keyingi versiyasida ishlab chiquvchilar GUI-ni moslashishga va'da berishadi, ammo hozircha biz buzg'unchilikka majburmiz :(

Muvaffaqiyat yo'lidagi so'nggi qadam terimizni sozlash bo'ladi. Biz skript o'zgaruvchisida teri faylini belgilaymiz va keyin loyiha oynasida ushbu faylni tanlaymiz. Boshqa fayllarda bo'lgani kabi, teri sozlamalari Inspektor oynasida ko'rsatiladi. Bu erda biz o'zgarishi mumkin bo'lgan elementni qidirmoqdamiz (bizning holatda, Box), uni oching va yuqorida muhokama qilingan uslubga o'xshash tarzda o'rnating:

Skriptimiz to'g'ri ishlayotganligini bilish uchun loyihani ishga tushiramiz va yordam tugmasini bosishga harakat qilamiz:

Endi hamma narsa ishlaydi, lekin tavsifni yashirish uchun yordam tugmasini bosish har doim ham qulay emas. Har qanday bildirishnomani har qanday bildirishnomaga kiritish odatiy holdir bepul joy tugmalarni nishonga olishdan ko'ra. Va bu erda biz "isVisible" o'zgaruvchisini statik qilib qo'yganimizdan, shuningdek, fon rasmiga osilgan kollayderdan foydalanishimiz kerak...

Keling, birinchi skriptimizga ("Tovushlar") qaytaylik, u tovushlarni ijro etish uchun tugmani bosish kuzatilgan. Unga faqat bitta satr yozishimiz kifoya qiladi (aniqrog'i, "void OnMouseDown ()" usuli ichida:

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

Ushbu qator bilan biz shart qo'yamiz: agar bosilgan kollayderning nomi yordam tugmasi nomiga teng bo'lmasa, u holda "Yordam" skriptidagi "isVisible" o'zgaruvchisi "noto'g'ri" ga teng bo'ladi. Faqatgina "isVisible" o'zgaruvchisi "statik" postscriptiga ega bo'lishi kerak, aks holda biz xatoga yo'l qo'yamiz.

Endi, ishga tushirilganda, biz yordam oynamiz nafaqat yuqori o'ng burchakdagi tugmani bosganda, balki ekranning istalgan bo'sh qismiga tegganda ham yopilishini ko'ramiz. Yaxshilanishi mumkin bo'lgan yagona narsa - uni bosganingizda oynani yashirishdir ... Bu sizning "uy vazifangiz" bo'ladi;) Faqat shuni aytishim mumkinki, GUI qutisini xuddi shunday dizaynlashtirilgan tugmachaga o'zgartirish kerak bo'ladi, yana , sozlama terisi va "isVisible" o'zgaruvchisini o'zgartiruvchi funksiyani belgilash bilan. Hammasi, jim bo'ling :)

O'yinni kompilyatsiya qilish va loyihani saqlash

Nihoyat, hamma narsa biz uchun ishlaydi! Bu shuni anglatadiki, o'yinimizni saqlash va uni haqiqiy qurilmada sinab ko'rish vaqti keldi. Va buning uchun uni bajariladigan faylga (Windows uchun, masalan, EXE-da va Android uchun, APK-da) kompilyatsiya qilish kerak.

Agar siz kompyuter uchun o'yinni kompilyatsiya qilmoqchi bo'lsangiz, unda hech qanday dastlabki sozlamalarni o'rnatishingiz shart emas. Biroq, Android uchun, avvalo, biz boshidan yuklab olgan Android SDK ni ulashingiz kerak bo'ladi. Bu juda sodda tarzda amalga oshiriladi: "Tahrirlash" menyusiga o'ting, "Sozlamalar" bandiga qo'ng'iroq qiling va ochilgan oynada "Tashqi asboblar" yorlig'iga o'ting. Bu erda biz "Android SDK joylashuvi" qatorini qidirmoqdamiz va unda biz SDK bilan ochilmagan arxivga yo'lni ko'rsatamiz (quyidagi skrinshotga qarang). Aytgancha, bu erda siz sukut bo'yicha faol bo'lgan dahshatli MonoDevelop matn muharririni o'zingiz yoqtirganiga o'zgartirishingiz mumkin :)

Va endi haqiqat vaqti keldi! "Fayl" menyusiga o'ting va u erda "Yaratish sozlamalari" bandini toping. Ochilgan oynada biz darhol yig'ilish uchun sahnalarni qo'shishimiz kerak. Agar bitta sahna bo'lsa (bizning loyihamizdagi kabi), unda "Joriyni qo'shish" tugmasini bosish kifoya qiladi. Agar ularning bir nechtasi bo'lsa, siz ularning har birini ochib, xuddi shu tarzda sahnalar ro'yxatiga qo'shishingiz kerak bo'ladi, so'ngra sudrab tashlash orqali ularning kerakli tartibini moslang:

Keyingi qadam - qurish platformasini tanlash (biz Android uchun o'yinni rejalashtirmoqdamiz, ya'ni biz uni tanlaymiz) va pastdagi "O'yinchi sozlamalari" tugmasini bosing. Inspektor oynasida bir qator sozlamalar ochiladi, ulardan ba'zilari majburiy yoki juda kerakli. Sozlamalar ro'yxatining yuqori qismida ishlab chiquvchi kompaniya, dastur va uning belgisi (kompaniya nomi, mahsulot nomi va standart belgi) nomlarini ko'rsatish maqsadga muvofiqdir.

Pastki qismida "Boshqa sozlamalar" bo'limida ikkita talab qilinadigan parametr mavjud: "To'plam identifikatori" va "To'plam versiyasi". Standart versiya 1.0 sifatida o'rnatilgan, ammo identifikator qo'lda va, afzalroq, noyob yaratilishi kerak. U bir-biridan nuqtalar bilan ajratilgan uchta qismdan iborat bo'lishi kerak: ajratilgan "com" so'zi, so'ngra ishlab chiquvchi kompaniyaning nomi va oxirida dasturning o'zi.

Qolgan yig'ish sozlamalarini o'zingizning xohishingiz bilan o'zgartirishingiz yoki umuman o'zgartirmasligingiz mumkin. Asosiysi, endi kompilyatsiya allaqachon boshlanishi mumkin. Buni amalga oshirish uchun "Yaratish sozlamalari" oynasidagi "Yaratish" tugmasini bosing va dastur bizga APK faylida paketlangan tayyor dasturni berguncha kuting :)

Xulosa

Bu Android uchun eng oddiy ilovalarni yaratish bo'yicha bizning darsimizni yakunlaydi. Biz gaplashgan hamma narsani takrorlashingiz uchun maqolaning oxirida men o'yinning barcha resurslarini alohida papka sifatida saqlaydigan arxivga havola beraman (agar siz hamma narsani noldan qilishni istasangiz) va unitypackage kengaytmali fayl. Ikkinchisi butun loyihani bir vaqtning o'zida Unity-ga import qilish imkonini beradi, shu jumladan bog'liqliklar va boshqalar.

Loyihamizni import qilish uchun (va, aytmoqchi, Internet yoki Assets do'konidan yuklab olingan har qanday plaginlar) siz "Aktivlar" menyusiga o'tishingiz, "Import to'plami" bandini tanlashingiz va unda "Maxsus paket", keyin faylimizga yo'lni belgilang va "Import" tugmasini bosing. Aytgancha, siz o'zingizning loyihangizning to'liq zaxira nusxasini yaratishingiz mumkin, uni shunday birlik paketida saqlashingiz mumkin, xuddi shu menyudan ("Aktivlar") "To'plamni eksport qilish" bandini bosish orqali.

Ko'rinishidan, hamma narsa :) Unity 3D-ni noldan o'zlashtirgan odam sifatida, maqolada men maksimal savollarga javob berishga va dastlab paydo bo'lgan dvigatel bilan ishlashning asosiy nuanslarini ta'kidlashga harakat qildim. Ammo, ehtimol, bu kimdir uchun etarli bo'lmaydi, shuning uchun agar sizda biron bir savol bo'lsa, men bilan to'g'ridan-to'g'ri pochta orqali yoki forumda bog'lanishingiz mumkin: men sizga har qanday tarzda yordam beraman!

Barchangizga omad va barcha loyihalarni muvaffaqiyatli amalga oshirishni tilayman!

P.S. Agar manbaga ochiq havola ko'rsatilgan va Ruslan Tertishniyning muallifligi saqlanib qolgan bo'lsa, ushbu maqoladan erkin nusxa ko'chirish va iqtibos keltirish mumkin.