Android programų kūrimas. „Unity“ naudojimas programoms kurti Kuriame 3D žaidimą „Android“.

Plėtra mobiliosios programos yra viena iš pelningiausių profesijų kompiuterių pramonėje. Android žaidimo sukūrimas kainuoja šimtus ar tūkstančius dolerių, o pelnas gali siekti iki milijono dolerių. Šiuo atžvilgiu daugelis žmonių domisi telefono programų kūrimu. Šiame straipsnyje sužinosite, kaip sukurti „Android“ žaidimą nuo nulio naudojant kompiuterį, kurį variklį ir dizainerį geriau pasirinkti.

Nė vienas sėkmingas žaidimas neapsieina be gražios grafikos, todėl dizaino kūrimas yra vienas svarbiausių kūrimo etapų. „Android“ OS dizainas įgyvendinamas naudojant „dizaino dokumentą“ arba dizaino dokumentą. Turite pradėti kurti žaislą su išsamiu jo tyrimu. Faile yra:

  1. Objektų modeliai;
  2. Funkcinės specifikacijos;
  3. Žaidimo turinys;
  4. Sąsaja.

Panagrinėkime kiekvieną iš punktų išsamiau.

Objektų modeliai

Tai informacija apie kiekvieno elemento funkcionalumą. Objektų modeliai yra atsakingi už galimybę pirkti ir parduoti daiktus, taip pat už veikėjų žaidimo savybių gerinimą.

Funkcinės specifikacijos

Jame aprašomas žaidimo eiga, pagrindinės kiekvieno veikėjo savybės. Jame taip pat aprašomos funkcijos žaidimo elementai- ginklai, pirmosios pagalbos vaistinėlės, šarvai ir kt. Iš esmės funkcinės specifikacijos yra taisyklės, pagal kurias vyksta žaidimo procesas. Kuo geriau šis skyrius bus parengtas, tuo lengviau bus sukurti aukštos kokybės „Android“ žaidimą.

Žaidimo turinys

Tai yra žaidimo teksto užpildymas. Jame aprašomi veikėjų dialogai ir su kokiais ginklais galima atmušti žalą, kiek sveikatos pareikalaus smūgis, kokios savybės padidės naudojant įvairią įrangą. Jame taip pat yra Išsamus aprašymas kiekvienas elementas.

Sąsaja

Sąsaja yra tai, kaip vartotojas sąveikaus su žaidimu. Jame yra mygtukai, kuriais galite valdyti veikėją, ir meniu skyriai: pavyzdžiui, žaidimas, rezultatas, nustatymai, geriausi žaidėjai, pagalba. Jei neturite Android programų kūrimo patirties, prieš kurdami savo, atsisiųskite iš Play Market ir išanalizuokite populiarius žaidimus bei perkelkite geriausius sprendimus į savo projektą.

Žaidimo variklis

Bet kurio žaidimo esmė yra variklis. Tai programinė įranga, leidžianti ją kurti ir paleisti. Jame yra daugybė programų, įskaitant atvaizdavimo variklį, fizinį variklį, garsą, animaciją ir daug daugiau. Siekdami palengvinti programų rašymo procesą, trečiųjų šalių kūrėjai kuria savo žaidimų variklius, skirtus specialiai „Android“ programoms.

Kiekvienas iš jų siūlo skirtingas funkcijas: vieni yra skirti 3D, kiti 2D, gali būti palaikomos kelios platformos. Tokių variklių yra daugybė, tačiau jei esate pradedantysis, geriau pasirinkti vieną iš populiariausių, nes ten bus visos reikalingos funkcijos.

UDK

Sukimo momentas 2d/3d

Kas yra žaidimų dizaineris?

Constructor yra programa, sujungianti žaidimo variklį ir integruotą kūrimo aplinką. Konstruktorius daro kūrimo procesą prieinamą žmonėms, kurie neturi programavimo įgūdžių. Vieni dizaineriai leidžia kurti tam tikro žanro žaidimus, kiti pasižymi maksimaliu funkcionalumu, tačiau kainuoja daug daugiau pinigų. Pradedančiam mobiliųjų aplikacijų kūrėjui dizainerio pasirinkimas yra vienas iš svarbiausių momentų, nes nuo jos galimybių priklausys būsimos aplikacijos likimas.

Konstruktorius leidžia kurti įvairaus žanro žaidimus Windows, Android ir iOS. Pasiūlymai didelis pasirinkimas paruoštos vietos, objektai, personažai ir garso dizainas, todėl pirmojo Android žaidimo sukūrimas neužims daug laiko. Vartotojai, susipažinę su JS ir C++ programavimo kalbomis, gali naudoti įterptąjį GML. Vienintelis trūkumas yra tai, kad programa nėra išversta į rusų kalbą.

Išvada

„Android“ žaidimo kūrimas nėra lengvas, bet labai pelningas verslas. Jei nuspręsite sukurti žaidimą ir užsidirbti pinigų, pirmiausia išsiaiškinkite idėją. Tada parašykite „dizaino dokumentą“ ir nuspręskite dėl žaidimo variklio, kuris gali maksimaliai išnaudoti savo potencialą. Po to galite pereiti tiesiai prie programos kūrimo konstruktoriuje.

Vaizdo įrašas

Norėdami sužinoti daugiau apie procesą android žaidimų kūrimas, peržiūrėkite šios veiklos vaizdo įrašų seriją.

„Unity“ yra variklis, kuriame dauguma šiuolaikiniai žaidimai skirtingose ​​platformose. Per variklį galima kurti žaidimus, kurie yra orientuoti veikti kompiuteriuose (Windows, Linux, MacOS), mobiliuosiuose telefonuose, planšetiniuose kompiuteriuose (Android, iOS) ir net žaidimų konsolės PlayStation, Xbox, Nintendo.

Kaip sukurti žaidimus Unity?

Vienybė yra pagrįsta į komponentus orientuota koncepcija. Tiesą sakant, bet kurį žaidimą sudaro daugybė objektų, praskiestų papildomais komponentais. Pavyzdžiui, platformingo kūrimo metu sukuriame GameObject, prie jo papildomai pridedame grafinį komponentą, kuris yra atsakingas už simbolio atvaizdavimą ir valdymo komponentą, kuris suteikia veikėjo valdymą naudojant pelę, klaviatūrą, vairasvirtę ar liečiamas ekranas. Variklis neriboja tokių modulių skaičiaus. Prie GameObject galime pridėti tiek komponentų, kiek reikia. Visas darbas su varikliu grindžiamas pačiu „GameObject“ sukūrimu ir tinkamų komponentų pritaikymu jiems.

Pradedantieji gali būti suklaidinti dėl akivaizdaus proceso paprastumo, nors taip nėra. Norėdami sukurti unikalų ir populiarus žaidimas jūs turite parašyti daug komponentų nuo nulio. Tiksliau, Unity aplinkoje tai vadinama scenarijumi. Gimtoji scenarijų kalba yra C#, tačiau iš dalies naudojamos ir JavaScript bei Boo (apkarpyta Python versija). Sukurti savo komponentus nėra lengva, netgi galima sakyti, tai sudėtinga procedūra, tiesiogiai susijusi su klasikiniu programavimu. Be pakankamo lygio programavimo žinių bus sunku.

Palaikomos platformos

Daugelis didelių projektų teikia pirmenybę „Unity“ dėl didžiulio su varikliu suderinamų platformų sąrašo. Užbaigtą programą galima paleisti bet kurioje kompiuterio operacinėje sistemoje, populiariose mobiliosiose platformose ir „SmartTV“. Ką galime pasakyti, net naršyklės žaidimai ir programos konkrečioms platformoms ( kaip Tizen OS) daugiausia kuriami Unity.

Tačiau čia ne viskas taip sklandžiai. Jei reikia, galite parašyti konkrečius algoritmus pagal žemo lygio kodą, tam pačiam Android reikia gerai išmanyti Java.

Tas pats pasakytina ir apie iOS. Kitas iOS funkcija kad jam galima kurti tik iš Apple kompiuterio ar planšetinio kompiuterio. Nesant „Macbook“ ar panašaus įrenginio, žaidimo išleidimas greitai sustos ir „Unity“ neturi nieko bendra, pati „Apple“ taiko panašų apribojimą. Išvada paprasta: jei planuose yra iOS plėtra, derėtų iš anksto pasirinkti tinkamą įrenginį surinkimui.

Kaip ir kur sukurti žaidimą variklyje?

Galime atlikti ilgą žaidimų kūrimo procesą tiek Windows, tiek Mac OS X sistemoje. Jau yra redaktoriaus versijos, skirtos Linux, tačiau kol kas negalime tikėtis jų stabilaus darbo. Kūrėjas didžiąją laiko dalį praleidžia kurdamas žaidimą Unity redaktoriuje. Dar turime daug laiko parašyti scenarijaus kodą, galime jį sukurti arba standartiniame MonoDevelop, arba bet kuriame trečiosios šalies redaktoriuje. Dabar jie aktyviai naudoja „Visual Studio“, taip pat „Sublime Text“, bet tik su tinkama konfigūracija.

Sveiki visi! Išmokęs kurti žaidimus šiame variklyje, noriu to išmokyti ir jus. Pirma, mums reikia paties Unity3d, bet kokio 3D modelio redaktoriaus ir tiesių rankų, augančių iš pečių.

1. Programos mokymasis

Pradedantiesiems rekomenduoju įdiegti Monodevelop! Supraskime, kas yra Vienybė. Unity yra kelių platformų žaidimų kūrimo aplinka. Būtent dėl ​​savo paprastumo ir suprantamumo kas trečias žmogus bent kartą yra sukūręs jame žaidimų.

Apsvarstykite aukščiau pateiktą ekrano kopiją:

  • Scena yra jūsų kūrybinė smėlio dėžė.
  • Projektas – čia yra visos animacijos ir modeliai, garsai ir faktūros.
  • Norėdami įdiegti modelius viršutinėje įrankių juostoje, pasirinkite Ištekliai-Importuoti naują turtą. Taip pat galite Turtas-importuoti paketą-Custom Package. Antruoju atveju paketas turi būti plėtinyje .unity.
  • Hierarchija – visi objektai scenoje. Ten sukuriate objekto tėvus. Tiesiog perkelkite objektą į kitą hierarchijos meniu ir jis bus pridėtas. Rezultatas bus savotiškas aplankas.
  • Įrankių juosta – įrankių sąrašas. Čia galite įjungti 2D, 3D režimus.
  • Inspektorius – objekto funkcija, kur pridedate animacijų, scenarijų ir kt. Ten galima naudotis įrankiais: perkelti kamerą, perkelti objektą, ištempti, pasukti objektą.


Dabar jame matote objekto meniu, kuriame galite pridėti animaciją, scenarijus ir dar daugiau.

Manau, kad su šiuo meniu problemų nekils.
Spustelėkite norėdami sukurti bet kurį objektą.

Apskritai, mes išstudijavome programą, netrukus bus galima rašyti savo žaidimus.

2. Sukurkite paprastą žaidimą

Pirmiausia sukurkime „Create-Terrain“ teritoriją. Pridėkite žolę ir medžius. Paspaudus ant žemės dešinėje atsiras langas, kuriame pasirenkami medžiai, žolė.


Taip pat sukurkite kalnus ir iškilimus. Tada į projektą įkelkite Characher valdiklio paketą. Tada mes ieškome lange su standartinių išteklių-simbolių valdiklio projektu ir pasirenkame pirmojo asmens vaizdą (kapsulė) arba trečiojo asmens vaizdą (mechanikas).
Jei pirmasis asmuo, tada tiesiog padėkite jį ant žemės. Jei iš trečiojo, tuomet reikia atsisiųsti animaciją. Taip pat rekomenduoju nustatyti scenos apšvietimą į Create-Directional Light.


Norėdami pridėti muzikos, vilkite ją į norimą elementą.
Žaidimas paruoštas, bet kaip jį sukompiliuoti?

Norėdami tai padaryti, eikite į Failų kūrimo nustatymai - grotuvo nustatymai (etiketė ir pavadinimas). Pasirinkite platformą ir viskas. Norėdami tai padaryti, turite įdiegti „Android“ SDK. Bet ten reikia nurodyti aplanką su SDK ir reikia ne tik SDK, bet ir norimo lygio API (pavyzdžiui, Android 4.2 turi API 17). Pavyzdžiui, jei norite, kad žaidimas būtų 4.0 ar naujesnės versijos „Android“, turite įdiegti šias API.

Kitame straipsnyje aš jums pasakysiu, kaip nustatyti „Android“ arba „iOS“ valdiklius ir išmokti patys rašyti scenarijus.

Įrašo peržiūrų skaičius: 19 374

Mes kalbėjome apie tai, kaip galite sukurti savo žaidimą „Android“ naudodami „Unreal Engine“. Šiame straipsnyje apžvelgsime kitą ne mažiau populiarų žaidimų kūrimo variklį - vienybė.

„Unity“ yra labai garsus variklis tarp nepriklausomų kūrėjų. Tiesą sakant, tai yra kelių platformų variklis, leidžiantis tobulėti 3D- ir 2D-žaidimai. Ypatybė, kuri išskiria Unity iš kitų variklių, yra žemas įėjimo slenkstis pradedantiesiems, o profesionalams yra gausus įrankių rinkinys. Kelių platformų naudojimas leidžia kurti programas bet kuriai platformai, nuo stalinių žaidimų iki mobiliųjų.

Atskirai verta paminėti prenumeratos sistemą, nes „Unity“ nėra visiškai nemokamas produktas. Yra keletas prenumeratos tipų:

  • Asmeninis. Nemokama versija, kurioje yra visos pagrindinės variklio funkcijos. Jis turi tokį apribojimą: pajamos per metus arba pritraukiamų lėšų suma neturi viršyti 100000$ .
  • Pliusas. Per 35 USD per mėnesį pateikiamos įvairios ataskaitos ir analizė, taip pat galimybė keisti ekraną, 20% - nuolaida perkant Turto parduotuvė ir įvairios smulkios naudos. Jis turi tokį apribojimą: metų pajamos arba surinktų lėšų suma neturi viršyti 200000$ .
  • Pro. Per 125 USD per mėnesį apima visus versijos privalumus Pliusas ir papildomai profesionalus aptarnavimas bei aukščiausios kokybės palaikymas. Jokių apribojimų nei apyvartai, nei lėšų sumai.
  • Atskiros versijos verslui (naudojamos didelės įmonės).

Taigi, nepriklausomi kūrėjai, turintys mažą biudžetą, turėtų būti patenkinti versija Asmeninis arba Pliusas kitu atveju turėsite užsiprenumeruoti Pro. Šiame straipsnyje mes naudosime nemokama versija pirmam bėgimui.

1 veiksmas Įdiekite „Unity“.

Norėdami pradėti diegti Unity, turite eiti į Unity Store svetainę, kur būsite paraginti pasirinkti prenumeratos tipą. Kaip minėta aukščiau, mes pasirenkame Asmeninis.

Tada būsite paraginti sutikti su naudojimo sąlygomis ir atsisiųsti diegimo programą. Taip pat galite patikrinti Sistemos reikalavimai dirbti su „Unity“.

Paleidę diegimo programą būsite paraginti pasirinkti, kuriuos komponentus įdiegti. Kadangi turime sukurti „Android“ programą, pažymėsime laukelį Android Build palaikymas. Be to, jei norite, galite įdiegti vietoj „Unity“. Visual Studio bendruomenė 2017 m programavimui įjungti C#.

Po to belieka pasirinkti diegimo kelią ir pradėti diegti Unity.

2 veiksmas: registracija ir Unity nustatymas

Baigę diegti ir paleidę Unity, esame paraginti prisijungti naudodami savo paskyrą.

Tada vėl jūsų bus paprašyta pasirinkti prenumeratą, taip pat sutelksime dėmesį į asmeninę. Tokiu atveju turėsite patvirtinti, kad įmonės metinės pajamos yra mažesnės nei 100 000 USD arba kad „Unity“ naudojama mokymo tikslais.

Pabaigoje siūloma atlikti nedidelę apklausą, kurioje reikia atsakyti, ką darote ir kokiu tikslu diegiate Unity.

3 veiksmas. Sukurkite naują projektą

Sukonfigūravę „Unity“, patenkame į projekto pasirinkimo / kūrimo ekraną. Paspauskite čia Nauja sukurti savo naują projektą.

Po to pasirodžiusiame lange jūsų bus paprašyta įvesti projekto pavadinimą ir katalogą, kuriame jis bus. Taip pat nepamirškite pažymėti langelio 3D norėdami naudoti redaktorių 3D režimu.

Baigę tai spustelėkite Sukurti projektą sukurti projektą. Po to atsidarys redaktoriaus langas su iš anksto sukurta scena.

Kol kas nesusidurkime su programavimo subtilybėmis, o kaip pavyzdį imkime baigtą žaidimą. Tam yra Turto parduotuvė, kuriame yra daugybė paruoštų modelių, animacijų, garsų (ir net žaidimų), tiek mokamų, tiek nemokamų.

Norėdami atidaryti Turto parduotuvę, jums reikia meniu Langas pasirinkti Turto parduotuvė(klavišų derinys ctrl-9).

Atsidarys parduotuvės langas. Paieškos juostoje įveskite " „flappy bird“ stiliaus pavyzdys“ ir atidarykite nemokamą pavyzdį, kurį naudosime savo projekte.

Paspaudus parsisiųsti ir atsisiuntę jį galėsite importuoti į savo projektą. Norėdami tai padaryti, spustelėkite Importuoti, po kurio pasirodys įspėjimas, kad po importavimo projekto nustatymai bus pakeisti.

Sutikę importuoti, pamatysite langą, kuriame turėsite pasirinkti, kuriuos komponentus importuoti. Pasirinkite viską ir spustelėkite Importuoti.

Kai importavimas bus baigtas, naujus failus pamatysite projekto naršyklėje. Tai yra žaidimo failai. Norėdami atidaryti sceną redaktoriuje, išskleiskite Atlenkiamas paukštis stilius - scenos ir dukart spustelėkite Pagrindinis.

Dėl to žaidimo scena atsiras 3D redaktoriaus lange.

Galite patikrinti, kaip žaidimas veikia tiesiai Unity, spustelėję mygtuką žaisti virš redaktoriaus lango.

4 veiksmas Sukonfigūruokite „Android“ įrankius

Pastaba: jei naudojate Android studija, tada jūs jau turite viską įdiegę būtini komponentai ir todėl galite saugiai pereiti prie kito žingsnio.

Norėdami surinkti gautą žaidimą „Android“, turite įdiegti šiuos įrankius:

  • Java plėtros rinkinys (JDK). Jį galite atsisiųsti iš „Java“ svetainės. Paspaudę nuorodą pamatysite pačiame viršuje „Java“ platforma (JDK), spustelėkite parsisiųstišalia užrašo, tada pasirinkite savo Operacinė sistema ir pradėkite atsisiųsti. Po to tiesiog vykdykite montuotojo nurodymus.
  • Android SDK. daugiausia paprastu būdu Norėdami įdiegti naujausią versiją, turite atsisiųsti „Android Studio“, su kuriuo yra šis SDK. Norėdami tai padaryti, eikite į „Android Studio“ svetainę ir spustelėkite Atsisiųskite „Android Studio“.. „Android Studio“ diegimo programa įdiegia pagrindinius „Android“ SDK komponentus, reikalingus „Android“ kūrimui.

5 veiksmas. Paruoškite projektą paleisti

Pirmiausia turite pakeisti kūrimo platformą į „Android“. Norėdami tai padaryti, Unity atidarykite meniu Failas ir pasirinkite Sukūrimo nustatymai.

Pasirodžiusiame lange pasirinkite Android ir tada paspauskite jungiklio platforma.

Platformos jungiklis mums sako, kad kursime „Android“ programą. Tai reiškia, kad kai kursime programą, Unity sukurs APK failą. Platformos jungiklis taip pat verčia „Unity“ iš naujo importuoti visą projekto turtą. Nedidelio projekto atveju tai neužtruks ilgai, tačiau atminkite, kad ši operacija gali užtrukti ilgai atliekant didelius projektus.

Dabar turime pateikti programos paketo pavadinimą.

Pastaba: Paketo pavadinimas yra unikalus programos identifikatorius ir yra parašytas atvirkštiniu DNS stiliumi formatu com.CompanyName.ProductName. Paskelbus programą Google Play paketo pavadinimo keisti nebegalima.

Norėdami tai padaryti, eikite į meniu Redaguoti ir pasirinkti Projekto nustatymai – grotuvas.

Dešinėje Unity pusėje atsidarys langas su daugybe skirtingų nustatymų, tokių kaip programos versija, tikslas ir minimalus SDK, piktogramų pasirinkimas ir kt. Čia mums reikia bloke Kiti nustatymai rasti Identifikavimas ir lauke nustatykite paketo pavadinimą paketo pavadinimas. Taip pat galite pakeisti kitus nustatymus, jei norite.

Dabar belieka tik nurodyti kelią į Android SDK ir JDK. Norėdami tai padaryti, eikite į meniu ir pasirinkite Redaguoti-Nuostatos.

Pasirodžiusiame lange eikite į Išoriniai įrankiai ir laukuose SDK ir JDK nurodykite tinkamus kelius ir uždarykite langą.

6 veiksmas: kurkite ir paleiskite programą

Atėjo laikas sukurti savo pirmąją Unity programą. Norėdami tai padaryti, pasirinkite iš meniu Failas – kūrimo nustatymai. Atsidarys langas, kuriame turėsite pridėti sceną, kurią norite surinkti. Kadangi ši scena jau atidaryta redaktoriuje, tiesiog spustelėkite Pridėti atvirų scenų pridėti jį prie surinkimo, pridėję jį pamatysite scenų sąraše.

Belieka tik paspausti Sukurti, po kurio Unity pradės kurti programą. Prieš tai jūsų gali būti paprašyta pasirinkti aplanką, kuriame bus išsaugoti surinkti programų failai, taip pat APK failo pavadinimą.

Pastaba: ant Šis momentas jei „Android SDK“ įdiegta alfa versija Sukūrimo įrankiai(versija 28.0.0-rc1), statant Gradle bus rodoma klaida. Norėdami tai išspręsti, tiesiog pašalinkite šią versiją iš „Android“ SDK.

Dėl to sukurtas APK failas bus rodomas jūsų nurodytame aplanke, paruoštas įdiegti emuliatoriuje arba tikrame įrenginyje.

Pažiūrėkime, kas yra sukurtame APK. Norėdami tai padaryti, naudojame įrankį APK analizatorius, kuris yra įtrauktas į „Android Studio“,

Nesuglaudinto APK failo dydis yra 21,1 MB, suspaustoje 20,9 MB. Kaip matote iš grafiko, didžiąją tūrio dalį užima trečiųjų šalių bibliotekos, kurias pridėjo Unity. Tada į turto yra visi surinktoje scenoje naudojami ištekliai. Failas klases.dex yra tik 89 klases ir 479 metodus.

Be to, jei pažvelgsite į AndroidManifest.xml, paraišką sudaro viena veikla.

Išvada

Tai viskas. Šiame straipsnyje sužinojome, kaip įdiegti ir konfigūruoti „Unity“, taip pat sukūrėme pirmąją „Android“ programą.

Kaip greitai ir palyginti lengvai sukurti paprastą žaidimą ar programą, skirtą „Android“? Apie tai skaitykite toliau esančiame straipsnyje, kuriame kalbama apie darbą su Unity3D varikliu.

Ar žaidžiate kompiuterinius žaidimus? Jei taip, tada, be abejo, pereinant kitą žaidimo blokbasterį kartais kildavo tokios mintys: „Bet čia aš būčiau padaręs neteisingai!“. Ar pats nori būti kūrėjas? Tada siūlau nedidelį, bet labai smagų „nuotykį“ ;)

Kas yra variklis ir kam jis reikalingas?

Anksčiau, dar pirmųjų kompiuterių laikais, žaidimai ir programos buvo kuriami vadinamuoju „hardcore“ metodu. Tai reiškia, kad visavertei plėtrai reikėjo būti gana patyrusiam programuotojui, puikiai išmanančiam savo programavimo kalbą ir galinčiam parašyti beveik visą žaidimą (įskaitant pikselių grafiką ir specialiuosius efektus!) į paprastą Notepad. Tokių žmonių buvo mažai ir jie buvo labai vertinami (ir vis dar vertinami) ...

Šiandien įėjimo į programavimo temą slenkstis gerokai sumažėjo. O tai palengvina ne tik literatūros ir visokios mokomosios medžiagos prieinamumas, bet ir vis supaprastėjantis kūrimo procesas. Šiais laikais retai sutiksi tikrų „kietųjų“ žmonių, nes atsirado gana patogios kūrimo aplinkos, kurios vadinamos „varikliais“.

Variklio esmė ta, kad jis leidžia importuoti visus reikalingus žaidimo objektus supaprastintu vaizdiniu režimu, išdėstyti juos virtualioje scenoje ir sukonfigūruoti visus jų parametrus. Tai yra, programuotojo užduotis yra tik teisingai parašyti žaidimo logiką!

Tačiau jūs turite mokėti už darbo patogumą šiek tiek padidinus projekto dydį (kartais net kelis kartus!), palyginti su jo atitikmeniu, parašytu senu „kietu“ būdu. Būtent dėl ​​šios priežasties kai kurie kūrėjai nemėgsta variklių arba bando rašyti savo, kuriuose naudojami tik jiems reikalingi komponentai...

Bet tu ir aš toli gražu ne tikri programuotojai :) Todėl sukurkime paprastą žaidimą Android, paremtą populiariu ir galingu Unity3D varikliu.

Projekto „Unity3D“ pradžia

Taigi, kodėl nusprendėme naudoti Unity3D:

  • galimybė kurti visaverčius 2D ir 3D žaidimus;
  • galimybė kompiliuoti gatavą žaidimą bet kuriam įrenginiui;
  • santykinis variklio valdymo paprastumas;
  • geras funkcionalumo išplėtimas jungiant papildinius;
  • palyginti mažas galutinio žaidimo komplekto dydis (palyginti su kitais varikliais).

Pagrindinis Unity3D koziris, be abejo, yra jo universalumas ir daugiaplatiškumas. Baigtas žaidimas(galbūt šiek tiek pakoregavus) Galite prijungti kompiuterį (Windows, Linux arba MacOS), Android, PlayStation arba XBox! Norėdami tai padaryti, turime atsisiųsti tik patį variklį, kuris, beje, "sveria" daugiau nei gigabaitą ir reikiamus SDK (jei planuojama plėtoti mobiliosios platformos arba konsolė). Jei norite sukurti žaidimą, skirtą „Windows“, jums nereikia nieko atsisiųsti, tačiau kadangi ketiname kurti žaidimą „Android“, turėsime atsisiųsti ir „Android“ SDK (Software Development Kit). Patariu atsisiųsti SDK ZIP archyve, kad būtų patogiau dirbti su juo.

Kai viskas atsisiųsta, galite išpakuoti į bet kurį jums patogų Android SDK aplanką ir diegti patį Unity3D. Ji įdiegta kaip ir bet kuri įprasta Windows programa, todėl diegiant neturėtų kilti problemų. Įdiegę variklis įsijungs ir pirmiausia turėsime sukurti naują projektą:

Norėdami tai padaryti, turėsime uždaryti visus pasveikinimo ir įvadinius langus, o tada meniu „Failas“ pasirinkti „Naujas projektas“. Atsidariusiame lange (žr. aukščiau esančią ekrano kopiją) būsime paraginti nurodyti projekto išsaugojimo aplanką (jo pavadinimas bus toks pat kaip projekto pavadinimo), importuoti kai kuriuos standartinius funkcijų rinkinius (mums jų nereikia) ir nurodyti veikimo režimą. Pasirinkite 2D kaip režimą ir spustelėkite mygtuką „Sukurti“. Tai užbaigia parengiamąją darbo dalį :)

Variklio sąsaja ir projekto hierarchija

Sukūrus projektą, jis bus įkeltas į Unity3D darbo sritį:

Pati ši darbo sritis yra modulinės struktūros ir susideda iš kelių įdėtų langų, kuriuos galima perkelti, kaip norite. Aš jį nustatiau taip (iš kairės į dešinę ir iš viršaus į apačią):

  1. Hierarchijos langas – rodo hierarchinę aktyvių ir neaktyvių objektų padėtį scenoje. Pagal numatytuosius nustatymus vienintelis objektas sąraše yra pagrindinė kamera.
  2. Scenos langas – rodoma visa žaidimo scena ir joje esantys objektai (įskaitant kameras, garsus, tekstūras ir kt.).
  3. Inspektoriaus langas – rodo visas hierarchijoje ar scenoje pasirinkto objekto savybes ir leidžia jas redaguoti, papildyti ar ištrinti.
  4. Žaidimo langas – rodomas žaidimų pasaulis, kurį mato kamera, ir leidžia pasirinkti virtualaus žaidimo testavimo lango dydį pikseliais. Taip pat leidžia suaktyvinti žaidimo lango išplėtimą visu dydžiu (Maksimizuoti žaidime) ir įjungti / išjungti įvairios informacijos kūrėjui rodymą.
  5. Projekto ir konsolės langai. Projekto langas naudojamas naršyti po projekto išteklius: įkeltus vaizdus, ​​garsus, modelius ir pan. Taip pat šiame lange (kontekstiniame meniu) galite sukurti naujus tuščius skirtingų tipų ir scenarijų žaidimo objektus. Konsolės langas naudojamas klaidų pranešimams (raudonai), įspėjimams (geltonai) ir įvairiai jūsų prašomai derinimo informacijai rodyti (pilka).
  6. Langas Turto etiketė yra apatinė inspektoriaus lango dalis, kurioje rodoma projekto lange pasirinkto objekto arba failo peržiūra.

Be visų pirmiau minėtų dalykų, atkreipkite dėmesį į tris viršutiniame centre esančius mygtukus. Jie leidžia pradėti projektą, jį pristabdyti (kartais naudinga, pavyzdžiui, derinant, kad pamatytumėte, kas daroma hierarchijoje) ir atitinkamai jį išjungti.

Sukursime muzikos instrumento simuliatorių: indų liaudies būgnus, vadinamus „tabla“, todėl, norėdami pradėti, projekte sukursime du tuščius aplankus, kuriuose bus saugomi garsai ir paveikslėliai. Naują aplanką galite sukurti iškvietę kontekstinį meniu „Project Navigator“ lange ir sąraše „Kurti“ pasirinkę elementą „Aplankas“.

Čia verta pasakyti keletą žodžių apie tai, kaip šie aplankai turėtų būti pavadinti. Paprastam žaidimui, kaip mūsų treniruokliui, iš principo aplankus galima „pavadinti“ taip, kaip jums patinka, tačiau yra bent du pavadinimai, kurių geriau nenaudoti, nes juos rezervuoja variklis. Tai yra pavadinimai Resources ir Plugins. Dideliuose projektuose aplankas Resources sukuriamas iš karto ir jame jau saugomos visos žaidimo „atsarginės dalys“ (paveikslėliai, garsai, modeliai, tekstūros ir prefabs) (surūšiuotos pagal poaplankius). „Plugins“, kaip rodo pavadinimas, yra saugomi visi papildomi trečiųjų šalių funkcijų rinkiniai (vadinamieji „turtai“ (ištekliai)), kurių nemažai yra „Asset Store“ – Unity3D plėtinių parduotuvėje.

Failų importavimas ir žaidimų objektų kūrimas

Prieš kuriant naują žaidimo projektą, patartina iš anksto paruošti visus jo veikimui reikalingus failus. Mūsų atveju šie failai yra paveikslėliai ir garsai. Lengviausias būdas juos importuoti į projektą – tiesiog nuvilkti juos į norimą aplanką. Pradėkime nuo nuotraukų...

Kai vaizdai pasirodys aplanke Vaizdai, juos reikia šiek tiek pakoreguoti:

Faktas yra tas, kad pagal numatytuosius nustatymus „Unity3D“ suglaudina visus į projektą pridėtus vaizdus, ​​​​prarandant kokybę. Jei mums nereikia tokio praradimo (ypač žaidimams su HD grafika), tuomet turėtume pasirinkti kiekvieną vaizdą ir lange Inspector pakeisti parametro "Format" reikšmę iš "Compressed" į "Truecolor" lauke "Numatytasis". “ skirtuką. Taip pat gali reikėti pakeisti parametrą „Maksimalus dydis“, jei jis mažesnis už tikrąjį vaizdo plotį (numatytasis yra 1024 pikseliai). Atlikę visus pakeitimus, turite nepamiršti spustelėti mygtuką „Taikyti“, kad juos pritaikytumėte. Jei reikia, panašius veiksmus atliekame ir su visais kitais vaizdais.

Dabar sukurkime žaidimo objektus iš savo paveikslėlių. Norėdami tai padaryti, tiesiog vilkite norimą vaizdą į hierarchijos langą. Nuotrauka arba 3D modelis bus automatiškai konvertuojamas į žaidimo objektą ir rodomas pradiniame koordinačių taške priešais kamerą.

Visų pirma, pridėjome fono paveikslėlį, kuris turėtų būti rodomas visame ekrane. Galite patikrinti, ar taip yra, hierarchijos lange pasirinkę kamerą ir pažiūrėję, kaip rodomas jos rėmelis. Aukščiau esančioje ekrano kopijoje matote, kad dalis mūsų fono lieka už fotoaparato vaizdo, todėl turime pakoreguoti šio rodinio dydį, vilkdami rėmelį tiesiai ant scenos arba redaguodami parametrą „Dydis“ lange Inspector. Mūsų atveju turėjome pakeisti numatytąją reikšmę (5) į 5,4.

Tai štai, prie fotoaparato nebeliečiame, o pridedame ir koreguojame likusias nuotraukas. Pridėdami matome, kad kai kurie iš jų yra per dideli mūsų žaidimui. Galite juos sumažinti fiziškai grafikos rengyklėje arba naudodami variklį. Išbandykime paskutinį metodą. Norėdami tai padaryti, hierarchijos lange pasirinkite vaizdą, o lange Inspektorius pakeiskite X ir Y koordinačių "Masto" reikšmes nuo 1 iki 0,5 (ty sumažinkite per pusę). Toje pačioje vietoje, kad būtų išvengta persidengimų, visiems žaidimo objektams (išskyrus foną) pageidautina priskirti nulinę sluoksnių tvarką (Tvarka sluoksnyje):

Paskutinis žingsnis ruošiant žaidimo objektus iš paveikslėlių bus ant jų „pakabinti“ kolaiderius. „Unity3D“ greitintuvai naudojami kaip objektų sąveikos detektoriai. Tiesą sakant, ant mūsų nuotraukos yra uždėtas virtualus apvalkalas, kuris gali užregistruoti prisilietimus prie jo.

Norėdami prie objekto pridėti greitintuvą, pasirinkite jį hierarchijos lange, tada spustelėkite mygtuką "Pridėti komponentą" inspektoriaus lange. Pasirodžiusiame komponentų sąraše ieškome Physics 2D (įprasta 3D fizika mūsų režimu neveiks) ir iš visų variantų mums labiausiai tinka „Circle Collider 2D“. Mes jį pasirenkame. Aplink mūsų objektą atsiras žalias potėpis, rodantis greitintuvo ribas. Belieka tik pažymėti žymimąjį laukelį „Is Trigger“, kad mūsų greitintuvas užregistruotų tik paspaudimus ir nebebendrautų su aplinkine žaidimo erdve:

Panašūs veiksmai kartojami su visais likusiais objektais. Tik mūsų fonas skirsis nuo kitų objektų. Tam pritaikysime „Box Collider 2D“ ir nustatysime, kad padėtis Z būtų didesnė už nulį, kad priešpriešinį įtaisą ir patį foną nustumtume į foną (to prireiks vėliau).

Darbas su garsu

Su garsu Unity 3D, iš pirmo žvilgsnio, viskas yra šiek tiek painu. Bet pabandykime išsiaiškinti eilės tvarka :)

Visų pirma, turime nuvilkti visus garsus į aplanką Garsai ir šiek tiek pakoreguoti:

Jei iš pradžių sureguliuojamas visų garsų garsumo lygis, tereikia išjungti 3D garso apdorojimą. 3D žaidimuose šis apdorojimas reikalingas norint imituoti garso šaltinio artėjimą, kai kamera prie jo artėja. Bet 2D mums to nereikia, todėl pasirenkame kiekvieną garsą paeiliui ir nuo jo panaikiname žymėjimą „3D garsas“.

Dabar galime pradėti pridėti garsų prie žaidimo objektų. Norėdami tai padaryti, turime pasirinkti kiekvieną mygtuką paeiliui ir pridėti prie jo naują "Garso šaltinio" komponentą iš "Garso" skilties. Pridėjus komponentą, pasirinkite atitinkamą mygtuką „Garso klipas“ ir panaikinkite žymės langelio „Play On Awake“ žymėjimą, kuris yra aktyvus pagal numatytuosius nustatymus (paleisti, kai jis pasirodo):

Kai visi garsai pritvirtinti prie reikiamų mygtukų, ateina laikas smagiajai daliai – scenarijui...

Pirmasis scenarijus

Prieš pradedant analizuoti pirmąjį scenarijų, tikriausiai verta pasakyti keletą žodžių apie scenarijų sistemą pačioje Unity 3D.

„Unity“ leidžia vienu metu rašyti kodą trimis kalbomis: „JavaScript“ (tiksliau, šiek tiek pakeista „UnityScript“ versija), C # ir „Boo“. Daugelyje knygų ir vadovų galite rasti nuomonę, kad pradedantiesiems Unity scenarijus lengviau įsisavinti naudojant JavaScript kaip pavyzdį. Tačiau ši kalba nėra tokia patogi kaip kitos, todėl ateityje greičiausiai teks mokytis iš naujo. Todėl geriau iš karto pradėti mokytis C # (Boo taip pat yra geras, tačiau jame yra mažai mokomosios medžiagos).

Dabar apie tai, kur parašyti kodą. Numatytasis Unity 3D kodo rengyklė yra MonoDevelop IDE. Šios kūrimo aplinkos pranašumas yra tas, kad joje yra patarimų, kaip greitai įvesti standartinius metodus, klases ir funkcijas, taip pat sintaksės tikrinimo sistemą. Tačiau man trūkumas buvo masiškumas ir didelis išteklių intensyvumas. Laimei, Unity nustatymuose kaip teksto rengyklę galima nustatyti bet ką, tad lengvą ir funkcionalų Notepad ++ „pakabinau“ sau (jame bus rodomi beveik visi pavyzdžiai).

Ir paskutinis. Natūralu, kad be informacinės medžiagos, įvaldydami visas variklio subtilybes, toli nenueisite, todėl čia yra kelių protingų interneto išteklių, skirtų Unity 3D, sąrašas:

  • http://docs.unity3d.com/ru/current/Manual/UnityManualRestructured.html - oficialus variklio vadovas su daliniu vertimu į rusų kalbą (pasirodė neseniai ir kartais yra nestabilus);
  • http://docs.unity3d.com/ru/current/ScriptReference/index.html – oficialus scenarijų rengimo vadovas anglų kalba;
  • http://unity3d.ru/distribution/index.php - Rusijos forumas Unity 3D kūrėjams;
  • http://habrahabr.ru/post/141362/ - pamokų serija, kaip kurti trimačius žaidimus Habrahabr;
  • http://msdn.microsoft.com/ru-ru/library/618ayhy6.aspx – oficiali Microsoft C# nuoroda rusų kalba.

Na, o kad ilgai neužtempčiau, siūlau iš karto sukurti pirmąjį scenarijų. Pagal scenarijus, jei jų yra daug, geriau skirti atskirą aplanką, tačiau mūsų žaidimas bus paprastas, todėl scenarijų galime sukurti tiesiai projekto šakniniame aplanke. Norėdami tai padaryti, projekto lange iškvieskite kontekstinį meniu, pasirinkite sąrašą Kurti ir spustelėkite „C # scenarijus“. Pavadinkime savo naująjį scenarijų, pavyzdžiui, Garsai ir atidarykite jį dukart spustelėdami. Pašalinę standartinius metodus Atnaujinti ir Pradėti, o tada, užregistravę būtinus, gauname tokį scenarijų:

Jei neperkonfigūravote redaktoriaus, mūsų scenarijus bus atidarytas MonoDevelop. Pažvelkime į jo struktūrą...

Tiesą sakant, kiekvienas C# scenarijus susideda iš trijų pagrindinių dalių:

  1. Pačiame viršuje surašytos bibliotekos, kurias reikia prijungti, kad scenarijus veiktų (pavyzdžiui, „using Unity.Engine“ sujungia paties variklio darbą, o „naudojant System.Collections“ – biblioteką, kurioje yra skaičius integruotų klasių, kad scenarijus veiktų skirtingose ​​sistemose).
  2. Klasių ir kintamųjų deklaracija. C# kalboje nėra scenarijaus sąvokos. Vietoj to naudojama „klasės“ sąvoka, apimanti daugybę metodų ir funkcijų. Nors iš tikrųjų Unity 3D kontekste tai beveik tas pats :) Svarbiausia atsiminti, kad klasės pavadinimas turi sutapti su pavadinimu, kurį suteikėme scenarijui. Kintamųjų C# ypatumas yra tas, kad jie turi būti įvesti (išskyrus laikinuosius, kurie deklaruojami pačiame scenarijuje). Praktiškai tai reiškia, kad kintamajam turi būti nurodytas prieigos lygis (privatus arba viešas) ir tipas (int, float, bool arba, kaip turime scenarijuje, AudioClip). Arba galite iš karto suteikti jai priskirtą vertę.
  3. Metodų ir funkcijų rinkinys. C# metodas yra beveik bet kokia funkcija, atliekanti tam tikrus veiksmus. Iš esmės literatūroje apie „Unity 3D“ jos vadinamos funkcijomis, bet jei kalbame apie C # kaip atskirą programavimo kalbą, tai juk tai yra metodai :). Grynosios Unity funkcijos yra, pavyzdžiui, standartinės garso išvedimo, GUI elementų piešimo ir pan. funkcijos, kurios naudojamos metoduose.

Dabar žinant scenarijaus struktūrą, nesunku suprasti jo prasmę, kuri susiveda į štai ką... Garsų klasėje (scenarijus) deklaruojame 9 AudioClip tipo kintamuosius su tokiais pavadinimais, kurių mums reikia patogumui. skiriant juos. Juos būtinai darome viešus (privatūs redaktoriuje nebus rodomi, o garsus ant jų reikės „kabinti“ per redaktorių). Ir tada scenarijaus turinyje naudojame standartinį metodą „void OnMouseDown ()“. Anksčiau jis buvo atsakingas tik už pelės paspaudimo apdorojimą, tačiau naujose versijose jis taip pat interpretuojamas kaip prisilietimas prie jutiklinio ekrano. Jame rašome sąlygas, kuriomis tikriname paspaustų kolaiderių pavadinimus ir, jei nustatome vieno iš jų paspaudimą, išvedame atitinkamą garsą (naudojame standartinę audio.PlayOneShot(); funkciją).

Rašydami kodą būkite atsargūs ir įtraukite visus atidaromus ir uždaromus skliaustus, nes priešingu atveju pulte nuolat gausite klaidų ataskaitas ir iš viso negalėsite vykdyti projekto! Taip pat atkreipkite dėmesį į didžiųjų raidžių vartojimą metodų ir funkcijų pavadinimuose. Jie taip pat dažnai yra klaidų priežastis. Ir, žinoma, stebėkite visus ženklus (taškus, dvitaškius ir skliaustus), trumpai tariant, kalbos sintaksę. Iš pradžių bus sunku, bet laikui bėgant pradėsite rašyti nuo nulio be klaidų!

Kai scenarijus bus paruoštas, pasirinkite jį ir lange Inspector kiekvienam kintamajam priskirkite skirtingą garsą. Dabar mes tiesiog turime pritaikyti savo scenarijų scenos objektams. Paprasčiausias būdas tai padaryti vėlgi yra nuvilkti scenarijų tiesiai ant norimo žaidimo objekto hierarchijos sąraše:

Jei scenarijus buvo nuvilktas teisingai, jis turėtų būti rodomas inspektoriaus lange šalia objekto, ant kurio jį vilkėme. Atitinkamai, mes tempiame scenarijų į visus objektus, kurie turėtų skambėti žaidime, ir galime pabandyti jį paleisti. Kai spustelėsite mūsų žaidimo mygtukus, dabar pagaliau pasigirs nurodytas garsas!

Įvadas į GUI

Iš principo Žaidimas pas mus jau veikia, bet kažkaip per daug „plikęs“. Jame kažko trūksta... Arba bent jau užrašo su vardu, kuris yra priešais mus! Kitaip tariant, reikia įdiegti kažkokią suprantamą vartotojo sąsają.

Tiesą sakant, GUI yra anglų kalbos santrumpa. „Grafininė vartotojo sąsaja“, tai yra grafinė vartotojo sąsaja. Tradiciškai jį sudaro tokie komponentai kaip:

  • mygtukai;
  • langas;
  • teksto sritys;
  • žymės langeliai ir (arba) radijo mygtukai;
  • slankikliai (slinkties juostos) ir kt.

„Unity 3D“ Visa tai (ir net kažkas daugiau) yra pilnai. Svarbiausia išmokti juo naudotis! Pažiūrėkime, kaip Unity GUI gali padaryti paprastą antraštę.

Norėdami tai padaryti, sukurkite naują scenarijų pavadinimu Interface ir pakeiskite jį taip:

Atidžiai apsvarstykite scenarijų ekrano kopijoje. Čia rašome tik vieną viešą GUIStyle tipo kintamąjį, kuris mums yra naujas. Šis tipas leidžia vizualiai pakeisti elementų, kuriems priskirtas šis stilius, išvaizdą. Stiliai naudingi, kai yra daug to paties tipo sąsajos elementų (pavyzdžiui, mygtukų), tačiau jie turėtų turėti kitokią išvaizdą.

Toliau sukuriame mygtuką („GUI.Button“), kurio sintaksė yra tokia: sąlyga – 4 koordinatės (horizontali įtrauka nuo kairiojo krašto, vertikali įtrauka nuo viršutinio krašto, plotis, aukštis) – matomas tekstas kabutėse ir toliau , pasirinktinai, stiliaus nuoroda. Mygtuko sąlygos viduje įrašytos reikalingos funkcijos. Mūsų atveju užregistravome perėjimą į kūrėjų svetainę ("Application.OpenURL(");").

GUI scenarijai gali veikti nuo bet kokių žaidimo objektų, tačiau dažniausiai jiems patariama juos „pakabinti“ ant kameros, o tai padarysime nutempę scenarijų ant pagrindinės kameros objekto. Dabar, jei pasirinksime jį lange Hierarchija, tai lange Inspector galėsime matyti viešą savo stiliaus kintamąjį, jį išplėtę, gausime pilną prieigą prie šio stiliaus nustatymų!

Teksto spalvą ir fono tekstūrą galime nurodyti bet kurioje situacijoje (mygtukui reikia užregistruoti tris jo parinktis (Normal – normalus vaizdas, Hover – ant hover ir Active – spustelėjus), nustatyti užpildymą ir koreguoti šriftą. Pagal numatytuosius nustatymus vienintelis „Unity 3D“ šriftas yra „Arial“, tačiau galite rankiniu būdu įkelti bet kurį kitą šriftą į projektą ir pritaikyti jį lauke „Šriftas“, nustatydami visus susijusius parametrus.

Įdomu ir tuo pačiu nelabai patogu yra tai, kad GUI elementai scenoje nerodomi, kol nepradedame projekto, tad kiekvieno elemento parametrų derinimas gali užtrukti nemažai laiko. Paleiskite projektą ir pažiūrėkime, kaip atrodys aukščiau sukurtas mygtukas:

Sąsajos keitimas pagal sąlygas ir statinius kintamuosius

Jau daug nuveikėme, bet visada yra kur tobulėti :) Todėl, kaip paskutinį pavyzdį, siūlau sukurti pagalbos langą, su kuriuo paprastai paprasti kūrėjai pateikia savo žaidimus ir programas. Norėdami tai padaryti, į aplanką su vaizdais pridėkite tokio mygtuko paveikslėlį klaustuko pavidalu ir padarykite iš jo žaidimo objektą. Pakabinkime ant jo koliderį ir parašykime scenarijų pavadinimu, pavyzdžiui, „Pagalba“ su tokiu turiniu:

Šiame scenarijuje turime du kintamuosius. Pirmasis kintamasis apibrėžia odą, kuri bus naudojama visiems šioje klasėje aprašytiems sąsajos elementams. Skirtingai nuo stilių, kuriuos aptarėme aukščiau, skinai leidžia keisti ne tik atskiro elemento, kuriam jie priskirti, išvaizdą, bet ir visų tam tikro tipo elementų iš karto. Be to, skirtingai nei stiliai, skinai nėra priskiriami elementams, o iš karto deklaruojami visam metodui ir veikia tol, kol deklaruojamas kitas skinas. Taip pat reikia atsiminti, kad skinai egzistuoja ne tik kaip kintamieji, bet ir kaip atskirus failus. Todėl prieš paskelbdami apvalkalą, turite nedelsdami sukurti jį kontekstinio meniu lange „Projektas“: „Sukurti“ - „GUI oda“.

Antrasis mūsų turimas kintamasis yra loginis (arba kitaip Būlio). Jis gali turėti tik dvi reikšmes: "true" (tiesa) arba "false" (false). Dėl dvejetainio pobūdžio toks kintamasis puikiai tinka visų rūšių jungikliams įgyvendinti. Mūsų atveju ji bus atsakinga už teksto, apibūdinančio mūsų žaidimą, rodymą.

Tačiau jei atidžiai įsižiūrėsite, pastebėsite, kad paskutinis kintamasis turi vieną nuostabų parametrą – „static“. Pridėjus šį parametrą prie kintamųjų, galite padaryti juos statinius ir pasiekti juos iš kitų scenarijų!

Bet grįžkime prie likusios kodo dalies. Čia jau pažįstamas metodas "void OnMouseDown()" bus naudojamas kaip "isVisible" kintamojo jungiklis naudojant paprastą sąlygą. Tačiau po sąlygos yra kita funkcija. Ši funkcija („Debug.Log();“) naudojama norint išvesti „skraidydamas“ į konsolę mums reikalingų kintamųjų reikšmes (įvedame jas be kabučių skliausteliuose). Kaip matote, funkcijos viduje galite derinti ir nekintantį tekstą (parašytą kabutėse), ir kintamuosius (be kabučių). Svarbiausia, kad tarp visų duomenų būtų ženklas „+“.

Toliau scenarijaus tekste turime sąsajos braižymo metodą („void OnGUI()()“), kurio viduje matome naujos apvalkalo deklaraciją („GUI.skin = HelpSkin;“) ir naują. GUI.Box tipo sąsajos elementas. Skirtingai nei mygtukas, langelis yra neaktyvus elementas ir paprastai naudojamas įvairiems tekstiniams ar grafiniams duomenims rodyti.

Atkreipkite dėmesį į tai, kaip nustatome dėžutės padėtį. Čia visos reikšmės nurodomos ne tiesiogiai, o naudojant matematines išraiškas, kurios, tiesą sakant, yra „skystaus išdėstymo“ analogas kuriant žiniatinklius. Bėda ta, kad nurodant tikslius GUI elementų dydžius esant skirtingoms ekrano skyroms, jie nepritaikys ir gali būti arba per maži, arba, atvirkščiai, dideli. Kitoje variklio versijoje kūrėjai žada pritaikyti GUI, bet kol kas tenka iškrypti :(

Paskutinis žingsnis kelyje į sėkmę bus odos pritaikymas. Scenarijaus kintamajame nurodome odos failą, o tada projekto lange pasirenkame šį failą. Kaip ir kitų failų atveju, odos parametrai bus rodomi inspektoriaus lange. Čia ieškome elemento, kuris gali būti keičiamas (mūsų atveju Box), atidarykite jį ir nustatykite taip pat, kaip ir aukščiau aptartą stilių:

Norėdami pamatyti, ar mūsų scenarijus veikia tinkamai, paleiskite projektą ir pabandykite spustelėti pagalbos mygtuką:

Dabar viskas veikia, bet ne visada patogu paspausti pagalbos mygtuką, kad aprašymas būtų paslėptas. Įprasta bet kokius pranešimus kišti į bet kurį laisva vieta nei nukreipti į mygtukus. Ir čia tereikia pasinaudoti tuo, kad „isVisible“ kintamąjį padarėme statiniu, taip pat ir ant fono paveikslėlio pakabintą susidūrimo įrenginį...

Grįžkime prie mūsų paties pirmojo scenarijaus („Garsai“), kurį paspaudus sekamas mygtukas leidžia atkurti garsus. Mums pakaks į ją įrašyti tik vieną eilutę (tiksliau, „void OnMouseDown ()“ metodo viduje:

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

Šia eilute nustatome sąlygą: jei paspausto greitintuvo pavadinimas nesutampa su pagalbos mygtuko pavadinimu, tada "Help" scenarijaus kintamasis "isVisible" bus lygus "false". Tik būtina, kad kintamasis „isVisible“ tikrai turėtų postscript „static“, kitaip gausime klaidą.

Dabar paleidžiant pamatysime, kad pagalbos langas uždaromas ne tik spustelėjus mygtuką viršutiniame dešiniajame kampe, bet ir palietus bet kurią laisvą ekrano dalį. Vienintelis dalykas, kurį galima patobulinti, kad paspaudus langas pasislėptų... Tai bus jūsų "namų darbai";) Galiu pasakyti tik tiek, kad GUI langelį reikės pakeisti į panašaus dizaino mygtuką, vėlgi , su nustatymo oda ir nurodant funkciją, kuri pakeičia kintamąjį „isVisible“. Viskas, tylėk :)

Žaidimo kompiliavimas ir projekto išsaugojimas

Pagaliau viskas mums tinka! Tai reiškia, kad laikas išsaugoti žaidimą ir išbandyti jį tikrame įrenginyje. Norėdami tai padaryti, jis turi būti sukompiliuotas į vykdomąjį failą (pvz., „Windows“, pavyzdžiui, EXE, ir „Android“, APK).

Jei norite kompiliuoti žaidimą kompiuteriui, jums nereikia atlikti jokių išankstinių nustatymų. Tačiau „Android“ pirmiausia turėsite prijungti „Android“ SDK, kurį atsisiuntėme pačioje pradžioje. Tai daroma gana paprastai: eikite į meniu „Redaguoti“, iškvieskite elementą „Nuostatos“ ir atsidariusiame lange eikite į skirtuką „Išoriniai įrankiai“. Čia mes ieškome eilutės „Android SDK Location“ ir joje nurodome kelią į išpakuotą archyvą su SDK (žr. ekrano kopiją žemiau). Beje, čia taip pat galite pakeisti monstrišką MonoDevelop teksto rengyklę, aktyvią pagal numatytuosius nustatymus, į mėgstamą :)

Ir dabar atėjo tiesos akimirka! Eikite į meniu „Failas“ ir ten ieškokite elemento „Kūrimo nustatymai“. Atsidariusiame lange turėsime iš karto pridėti surinkimo scenų. Jei yra tik viena scena (kaip mūsų projekte), tada užteks paspausti mygtuką „Pridėti dabartinį“. Jei jų yra keletas, tuomet turėsite atidaryti kiekvieną iš jų ir įtraukti jas į scenų sąrašą tokiu pačiu būdu, o tada, vilkdami ir nuleisdami, pakoreguokite jų norimą tvarką:

Kitas žingsnis yra pasirinkti kūrimo platformą (planuojame žaidimą Android, vadinasi, pasirenkame jį) ir spustelėkite žemiau esantį mygtuką "Player Settings". Inspektoriaus lange atsidarys keli nustatymai, kai kurie iš jų yra privalomi arba labai pageidautini. Nustatymų sąrašo viršuje pageidautina nurodyti kūrėjo įmonės pavadinimus, programą ir jos piktogramą (atitinkamai Įmonės pavadinimas, Produkto pavadinimas ir Numatytoji piktograma).

Apačioje, skiltyje „Kiti nustatymai“, yra du būtini parametrai: „Rinkinio identifikatorius“ ir „Rinkinio versija“. Numatytoji versija nustatyta kaip 1.0, tačiau identifikatorius turės būti sukurtas rankiniu būdu ir, pageidautina, unikalus. Jį turėtų sudaryti trys dalys, atskirtos viena nuo kitos taškais: rezervuotas žodis „com“, tada kūrėjo įmonės pavadinimas, o pabaigoje – pačios programos pavadinimas.

Likusius surinkimo nustatymus galite keisti savo nuožiūra arba visai nekeisti. Svarbiausia, kad dabar jau bus galima pradėti rinkti. Norėdami tai padaryti, tiesiog spustelėkite mygtuką „Sukurti“ lange „Kūrimo nustatymai“ ir palaukite, kol programa pateiks mums paruoštą programą, supakuotą į APK failą :)

Išvada

Tai užbaigia mūsų pamokos apžvalgą apie paprasčiausių „Android“ programų kūrimą. Kad galėtumėte pakartoti viską, apie ką kalbėjome, straipsnio pabaigoje pateiksiu nuorodą į archyvą, kuriame visi žaidimo ištekliai bus saugomi kaip atskiras aplankas (jei norite viską daryti nuo nulio) ir kaip failas su plėtiniu unitypackage. Pastarasis leidžia iš karto importuoti visą projektą į Unity, įskaitant priklausomybes ir pan.

Norėdami importuoti mūsų projektą (ir, beje, visus iš interneto ar turto parduotuvės atsisiųstus papildinius), turite eiti į meniu „Turtas“, pasirinkti elementą „Importuoti paketą“ ir jame „Pasirinktinis paketas“, tada nurodykite kelią į mūsų failą ir paspauskite mygtuką „Importuoti“. Beje, iš to paties meniu („Turtas“) galite pasidaryti pilną projekto atsarginę kopiją, išsaugodami ją tokiame vienetiniame pakete, spustelėdami elementą „Eksportuoti paketą“.

Atrodo, kad viskas :) Kaip žmogus, kuris pats Unity 3D įvaldė nuo nulio, straipsnyje stengiausi atsakyti į maksimalų skaičių klausimų ir išryškinti iš pradžių kylančius pagrindinius darbo su varikliu niuansus. Bet galbūt kažkam to nepakaks, todėl, jei turite klausimų, galite susisiekti su manimi tiesiogiai paštu arba forume: aš jums padėsiu, kaip tik galėsiu!

Linkiu visiems sėkmės ir sėkmingo visų projektų įgyvendinimo!

P.S. Leidžiama laisvai kopijuoti ir cituoti šį straipsnį, jei bus nurodyta atvira aktyvi nuoroda į šaltinį ir išsaugoma Ruslano Tertyšnio autorystė.