Krijimi i aplikacioneve për Android. Përdorimi i Unity për të zhvilluar aplikacione Krijimi i një loje 3D për android

Zhvillimi aplikacionet celulareështë një nga profesionet më fitimprurëse në industrinë e kompjuterave. Krijimi i një loje Android kushton qindra ose mijëra dollarë dhe fitimi mund të arrijë deri në një milion dollarë. Në këtë drejtim, shumë njerëz janë të interesuar të zhvillojnë aplikacione për telefonin. Në këtë artikull, do të mësoni se si të krijoni një lojë Android nga e para duke përdorur një kompjuter, cilin motor dhe projektues është më mirë të zgjidhni.

Asnje lojë e suksesshme nuk mund të bëjë pa grafikë të bukur, kështu që krijimi i dizajnit është një nga fazat më të rëndësishme të zhvillimit. Dizajni në sistemin operativ Android zbatohet duke përdorur një "dokument projektimi" ose dokument projektimi. Ju duhet të filloni të krijoni një lodër me studimin e saj të hollësishëm. Skedari përmban:

  1. Modele objektesh;
  2. Specifikimet funksionale;
  3. Përmbajtja e lojës;
  4. Ndërfaqja.

Le të shqyrtojmë secilën nga pikat në më shumë detaje.

Modelet e objekteve

Ky është informacion në lidhje me funksionalitetin e secilit artikull. Modelet e objekteve janë përgjegjëse për aftësinë për të blerë dhe shitur artikuj, si dhe për përmirësimin e karakteristikave të lojës së personazheve.

Specifikimet funksionale

Ai përshkruan lojën, tiparet kryesore të secilit personazh. Ai gjithashtu përshkruan veçoritë artikujt e lojës- armë, komplete të ndihmës së parë, forca të blinduara dhe të tjera. Në thelb, specifikimet funksionale janë rregullat me të cilat zhvillohet procesi i lojës. Sa më mirë të përpunohet ky seksion, aq më e lehtë do të jetë krijimi i një loje Android me cilësi të lartë.

Përmbajtja e lojës

Kjo është plotësimi i tekstit të lojës. Ai përshkruan dialogët e personazheve dhe çfarë armësh mund të përdoren për të shkaktuar dëme, sa shëndet do të marrë një goditje, cilat karakteristika do të rriten kur përdorni pajisje të ndryshme. Ai gjithashtu përmban pershkrim i detajuarçdo artikull.

Ndërfaqja

Ndërfaqja është mënyra se si përdoruesi do të ndërveprojë me lojën. Ai përfshin butona me të cilët mund të kontrolloni karakterin dhe seksionet e menysë: për shembull, luaj, rezultat, cilësime, lojtarët kryesorë, ndihmë. Nëse nuk keni përvojë në krijimin e aplikacioneve Android, përpara se të krijoni tuajat, shkarkoni nga Play Market dhe analizoni lojërat e njohura dhe transferoni zgjidhjet më të mira në projektin tuaj.

Motori i lojës

Thelbi i çdo loje është motori. Ky është softuer që ju lejon ta zhvilloni dhe ekzekutoni atë. Ai përmban një gamë të tërë programesh, duke përfshirë një motor rendering, një motor fizik, tingull, animacion dhe shumë më tepër. Për të lehtësuar procesin e shkrimit të programeve, zhvilluesit e palëve të treta krijojnë motorët e tyre të lojërave posaçërisht për aplikacionet Android.

Secila prej tyre ofron veçori të ndryshme: disa janë të dizajnuara për 3D, të tjera për 2D, mund të mbështetet me shumë platforma. Ka një numër të madh motorësh të tillë, por nëse jeni fillestar, është më mirë të zgjidhni një nga më të njohurit, pasi të gjitha funksionet e nevojshme do të jenë të pranishme atje.

UDK

Çift rrotullues 2d/3d

Çfarë është një projektues lojërash?

Constructor është një program që kombinon një motor loje dhe një mjedis të integruar zhvillimi. Konstruktori e bën procesin e zhvillimit të aksesueshëm për njerëzit që nuk kanë aftësi programuese. Disa nga stilistët ju lejojnë të krijoni lojëra të zhanreve të caktuara, të tjerët kanë funksionalitet maksimal, por kushtojnë shumë më tepër para. Për një krijues fillestar të aplikacioneve celulare, zgjedhja e një projektuesi është një nga momentet më të rëndësishme, sepse fati i aplikacionit të ardhshëm do të varet nga aftësitë e tij.

Konstruktori ju lejon të krijoni lojëra të zhanreve të ndryshme për Windows, Android dhe iOS. Ofertat zgjedhje e madhe vendndodhje të gatshme, objekte, personazhe dhe dizajn tingulli, kështu që krijimi i lojës së parë Android nuk do të marrë shumë kohë. Përdoruesit e njohur me gjuhët e programimit JS dhe C++ mund të përdorin GML-në e integruar. E vetmja pengesë është se programi nuk është i përkthyer në Rusisht.

konkluzioni

Krijimi i një loje Android nuk është një biznes i lehtë, por shumë fitimprurës. Nëse vendosni të zhvilloni një lojë dhe të fitoni para në të, së pari përpunoni idenë. Më pas, shkruani një "dokument projektimi" dhe vendosni për një motor loje që mund të maksimizojë potencialin e tij. Pas kësaj, mund të vazhdoni drejtpërdrejt në krijimin e aplikacionit në konstruktor.

Video

Për të mësuar më shumë rreth procesit krijimin e lojërave Android, shikoni serinë e videove për këtë aktivitet.

Uniteti është motori në të cilin shumica e lojëra moderne në platforma të ndryshme. Nëpërmjet motorit, është e mundur të krijohen lojëra që janë të orientuara për t'u ekzekutuar në kompjuterë (Windows, Linux, MacOS), telefona celularë, kompjuterë tabletë (Android, iOS) dhe madje. konsolat e lojërave PlayStation, Xbox, Nintendo.

Si të krijoni lojëra në Unity?

Uniteti bazohet në një koncept të orientuar nga komponentët. Në fakt, çdo lojë përbëhet nga një masë objektesh të holluara me përbërës shtesë. Për shembull, gjatë krijimit të një platformeri, ne krijojmë një GameObject, shtojmë në të një komponent grafik, i cili është përgjegjës për shfaqjen e karakterit, dhe një komponent kontrolli, ai siguron kontrollin e karakterit duke përdorur një maus, tastierë, levë ose. ekran me prekje. Motori nuk vendos kufizime në numrin e moduleve të tilla. Mund të shtojmë sa më shumë komponentë në GameObject sipas nevojës. E gjithë puna në motor bazohet në vetë krijimin e GameObject dhe aplikimin e komponentëve të përshtatshëm për to.

Fillestarët mund të mashtrohen nga thjeshtësia e dukshme e procesit, megjithëse nuk është kështu. Për të krijuar një unik dhe lojë popullore ju duhet të shkruani shumë komponentë nga e para. Më konkretisht, në mjedisin Unity, ky quhet skript. Gjuha amtare e skriptimit është C#, por JavaScript dhe Boo (një version i prerë i Python) përdoren gjithashtu pjesërisht. Krijimi i komponentëve tuaj nuk është i lehtë, madje mund të thuhet se është një procedurë komplekse, e lidhur drejtpërdrejt me programimin klasik. Pa një nivel të mjaftueshëm njohurish në programim, do të jetë e vështirë.

Platformat e mbështetura

Shumë projekte të mëdha preferojnë Unity për shkak të listës së madhe të platformave të pajtueshme me motorin. Aplikacioni i përfunduar mund të lëshohet në çdo sistem operativ kompjuteri, platforma të njohura celulare dhe SmartTV. Çfarë mund të themi, edhe lojërat e shfletuesit dhe aplikacionet për platforma specifike ( si Tizen OS) janë zhvilluar kryesisht në Unity.

Sidoqoftë, jo gjithçka është aq e qetë këtu. Nëse është e nevojshme, mund të shkruani algoritme specifike bazuar në kodin e nivelit të ulët, për të njëjtin Android duhet të keni një njohuri të plotë të Java.

E njëjta gjë vlen edhe për iOS. Nje tjeter Funksioni i iOS se është e mundur të zhvillohet për të vetëm nga një kompjuter ose tabletë nga Apple. Në mungesë të një Macbook ose pajisje të ngjashme, lëshimi i lojës do të ngecë shpejt dhe Unity nuk ka asnjë lidhje me të, vetë Apple vendos një kufizim të ngjashëm. Përfundimi është i thjeshtë: nëse ka një zhvillim iOS në planet, duhet të zgjidhni paraprakisht një pajisje të përshtatshme për montim.

Si dhe ku të zhvillohet një lojë në motor?

Ne mund të kryejmë një proces të gjatë të zhvillimit të lojës si brenda Windows ashtu edhe Mac OS X. Ka tashmë versione të redaktuesit për Linux, por deri më tani nuk mund të llogarisim në punën e tyre të qëndrueshme. Një zhvillues shpenzon shumicën e kohës duke krijuar një lojë brenda redaktorit të Unity. Kemi ende shumë kohë për të shkruar kodin e skriptit, mund ta krijojmë atë ose në MonoDevelop standard ose në çdo redaktues të palëve të treta. Tani ata përdorin në mënyrë aktive Visual Studio, si dhe Sublime Text, por vetëm me konfigurimin e duhur.

Pershendetje te gjitheve! Pasi mësova se si të bëni lojëra në këtë motor, dua t'ju mësoj të njëjtën gjë. Së pari, ne kemi nevojë për vetë Unity3d, çdo redaktues modeli 3D dhe krahë të drejtë që rriten nga supet.

1. Mësimi i programit

Për fillestarët, unë rekomandoj instalimin e Monodevelop! Le të kuptojmë se çfarë është Uniteti. Unity është një mjedis i zhvillimit të lojërave me shumë platforma. Është për shkak të thjeshtësisë dhe kuptueshmërisë së tij që çdo person i tretë ka bërë lojëra në të të paktën një herë.

Merrni parasysh pamjen e ekranit të mësipërm:

  • Skena është kutia juaj krijuese e rërës.
  • Projekti - këtu janë të gjitha animacionet dhe modelet, tingujt dhe teksturat.
  • Për të instaluar modele në shiritin e sipërm të veglave, zgjidhni Assets-Import New Asset. Ju gjithashtu mund të Assets-Import Package-Paketa Custom. Në rastin e dytë, paketa duhet të jetë në shtrirjen .unity.
  • Hierarkia - të gjitha objektet në skenë. Aty krijoni prindër për objektin. Thjesht zhvendosni një objekt në një tjetër në menunë e hierarkisë dhe ai do të bashkëngjitet. Rezultati do të jetë një lloj dosjeje.
  • Shiriti i veglave - lista e mjeteve. Aty mund të aktivizoni modalitetin 2D, 3D.
  • Inspektori - një veçori e një objekti, ku shtoni animacione, skripta dhe më shumë. Atje mund të përdorni mjetet: lëvizni kamerën, lëvizni objektin, shtrini, rrotulloni objektin.


Tani ju shihni menunë e objekteve në të, mund të shtoni animacion, skriptet dhe më shumë.

Unë mendoj se me këtë menu nuk do të keni probleme.
Klikoni për të krijuar ndonjë objekt.

Në përgjithësi, ne kemi studiuar programin, së shpejti do të jetë e mundur të shkruajmë lojërat tona.

2. Krijo një lojë të thjeshtë

Së pari, le të krijojmë një territor Create-Terrain. Shtoni barin dhe pemët. Duke klikuar në tokë në të djathtë, do të shfaqet një dritare, zgjidhni pemët, barin.


Gjithashtu krijoni male dhe gunga. Pastaj ngarkoni paketën e kontrolluesit Characher në projekt. Më pas kërkojmë në dritare me projektin Standard assets-Characters controller dhe zgjedhim pamjen e personit të parë (kapsulë) ose pamjen e personit të tretë (mekanik).
Nëse personi i parë, atëherë thjesht vendoseni në tokë. Nëse nga e treta, atëherë duhet të shkarkoni animacionin. Unë rekomandoj gjithashtu vendosjen e ndriçimit të skenës në Create-Directional Light.


Për të shtuar muzikë, tërhiqeni te artikulli i dëshiruar.
Loja është gati, por si ta përpiloni atë?

Për ta bërë këtë, shkoni te File-Build settings-player settings (për etiketën dhe emrin). Zgjidhni një platformë dhe voila, keni mbaruar. Për ta bërë këtë, duhet të instaloni Android SDK. Por atje duhet të specifikoni dosjen me SDK, dhe nuk ju nevojitet vetëm SDK, por API e nivelit të dëshiruar (për shembull, Android 4.2 ka API 17). Për shembull, në mënyrë që loja të jetë në Android 4.0+, duhet të instaloni këto API.

Në artikullin tjetër, unë do t'ju tregoj se si të vendosni kontrollet për Android ose iOS dhe të mësoni se si të shkruani vetë skriptet.

Shikime të postimit: 19 374

Ne folëm se si mund të krijoni lojën tuaj në Android duke përdorur Unreal Engine. Në këtë artikull, ne do të shikojmë një motor tjetër po aq të popullarizuar të zhvillimit të lojërave - unitetin.

Unity është një motor shumë i famshëm në mesin e zhvilluesve indie. Në fakt, është një motor ndër-platformë që ju lejon të zhvilloni 3D- dhe 2D-lojëra. Veçoria që e veçon Unity nga motorët e tjerë është pragu i ulët i hyrjes për fillestarët, ndërsa ka një paketë të pasur mjetesh për profesionistët. Ndër-platforma ju lejon të zhvilloni aplikacione për çdo platformë, nga lojërat desktop te ato celulare.

Më vete, vlen të përmendet sistemi i abonimit, pasi Unity nuk është një produkt plotësisht falas. Ka disa lloje abonimesh:

  • Personale. Version falas që përmban të gjitha tiparet kryesore të motorit. Ai ka kufizimin e mëposhtëm: të ardhurat në vit ose shuma e fondeve të mbledhura nuk duhet të kalojë 100000$ .
  • Plus. Per 35 dollarë në muaj ofrohen raporte dhe analitika të ndryshme, si dhe aftësia për të ndryshuar ekranin e spërkatjes, 20% -Zbritje për blerjet në Dyqani i aseteve dhe përfitime të ndryshme të vogla. Ai ka kufizimin e mëposhtëm: të ardhurat për vitin ose shuma e fondeve të mbledhura nuk duhet të kalojnë 200000$ .
  • Pro. Per 125 dollarë në muaj përfshin të gjitha përfitimet e versionit Plus dhe gjithashtu shërbim profesional dhe mbështetje premium. Nuk ka kufizime në qarkullim ose sasi të fondeve.
  • Versione të veçanta për biznes (të përdorura nga kompani të mëdha).

Kështu, zhvilluesit indie me buxhete të vogla duhet të jenë të kënaqur me versionin Personale ose Plus përndryshe do t'ju duhet të abonoheni Pro. Në këtë artikull, ne do të përdorim version falas për vrapimin e parë.

Hapi 1 Instaloni Unity

Për të filluar instalimin e Unity, duhet të shkoni në faqen e internetit të Unity Store, ku do t'ju kërkohet të zgjidhni llojin e abonimit. Siç u përmend më lart, ne zgjedhim Personale.

Më pas do t'ju kërkohet të pranoni kushtet e përdorimit dhe të shkarkoni instaluesin. Ju gjithashtu mund të shikoni Kërkesat e sistemit për të punuar me Unity.

Pas nisjes së instaluesit, do t'ju kërkohet të zgjidhni cilët komponentë të instaloni. Meqenëse duhet të krijojmë një aplikacion Android, do të kontrollojmë kutinë për Mbështetje për ndërtimin e Android. Gjithashtu, nëse dëshironi, në vend të Unity, mund të instaloni Komuniteti Visual Studio 2017 për programim në C#.

Pas kësaj, gjithçka që mbetet është të zgjidhni rrugën e instalimit dhe të filloni instalimin e Unity.

Hapi 2: Regjistrimi dhe konfigurimi i Unity

Pas përfundimit të instalimit dhe ekzekutimit të Unity, na kërkohet të identifikohemi me llogarinë tonë.

Pastaj përsëri do t'ju kërkohet të zgjidhni një abonim, ne gjithashtu do të përqendrohemi te Personal. Në këtë rast, do t'ju duhet të konfirmoni që të ardhurat vjetore të kompanisë janë më pak se 100,000 dollarë ose që Unity përdoret për qëllime trajnimi.

Në fund, propozohet të bëni një sondazh të vogël në të cilin duhet të përgjigjeni se çfarë bëni dhe për çfarë qëllimi instaloni Unity.

Hapi 3. Krijo një projekt të ri

Pasi të kemi konfiguruar Unity, arrijmë në ekran për zgjedhjen / krijimin e një projekti. Kliko këtu I ri për të krijuar projektin tuaj të ri.

Pas kësaj, në dritaren që shfaqet, ju kërkohet të vendosni emrin e projektit dhe drejtorinë ku do të vendoset. Gjithashtu mos harroni të kontrolloni kutinë 3D për të përdorur redaktuesin në modalitetin 3D.

Kur të keni mbaruar me këtë, klikoni Krijo projekt për të krijuar një projekt. Pas kësaj, do të hapet një dritare redaktori me një skenë të krijuar paraprakisht.

Le të mos merremi me ndërlikimet e programimit tani për tani dhe të marrim një lojë të përfunduar si shembull. Për këtë ka Dyqani i aseteve, i cili përmban një numër të madh modelesh të gatshme, animacione, tinguj (dhe madje edhe lojëra), të paguara dhe falas.

Për të hapur Dyqanin e Aseteve, ju duhet në meny Dritare zgjidhni Dyqani i aseteve(kombinimi i çelësave ctrl-9).

Dritarja e dyqanit do të hapet. Futni në shiritin e kërkimit " Lojë shembulli i stilit të shpendëve flappy" dhe hapni një shembull falas që do ta përdorim në projektin tonë.

Duke klikuar Shkarko dhe kështu pasi e keni shkarkuar, më pas mund ta importoni në projektin tuaj. Për ta bërë këtë, klikoni Importi, pas së cilës do të shfaqet një paralajmërim se cilësimet e projektit do të ndryshohen pas importimit.

Pasi të pranoni të importoni, do të shihni një dritare në të cilën duhet të zgjidhni cilët komponentë të importoni. Zgjidhni të gjitha dhe klikoni Importi.

Pasi të përfundojë importi, do të shihni skedarët e rinj në Shfletuesin e Projektit. Këto janë skedarët e lojës. Për të hapur skenën në redaktues, zgjeroni Zog flappy stil - skena dhe klikoni dy herë mbi Kryesor.

Si rezultat, skena e lojës do të shfaqet në dritaren e redaktuesit 3D.

Mund të kontrolloni se si funksionon loja drejt e në Unity duke klikuar në butonin Luaj mbi dritaren e redaktorit.

Hapi 4 Konfiguro veglat Android

Shënim: nëse jeni duke përdorur android studio, atëherë ju tashmë keni instaluar gjithçka komponentët e nevojshëm dhe kështu mund të kaloni me siguri në hapin tjetër.

Për të mbledhur lojën që rezulton në Android, duhet të instaloni mjetet e mëposhtme:

  • Kompleti i Zhvillimit Java (JDK). Mund ta shkarkoni nga faqja e internetit Java. Duke klikuar në lidhjen, do të shihni në krye Platforma Java (JDK), klikoni mbi Shkarko pranë mbishkrimit, më pas zgjidhni tuajin sistemi operativ dhe filloni të shkarkoni. Pas kësaj, thjesht ndiqni udhëzimet e instaluesit.
  • Android SDK. nga më së shumti në një mënyrë të thjeshtë për të instaluar versionin e fundit është të shkarkoni Android Studio me të cilin vjen kjo SDK. Për ta bërë këtë, shkoni në faqen e internetit të Android Studio dhe klikoni Shkarkoni Android Studio. Instaluesi i Android Studio instalon komponentët bazë të Android SDK të kërkuara për zhvillimin e Android.

Hapi 5. Përgatitni projektin për nisje

Së pari, duhet të ndryshoni platformën e zhvillimit në Android. Për ta bërë këtë, në Unity, hapni menunë File dhe zgjidhni Build Settings.

Në dritaren që shfaqet, zgjidhni Android dhe më pas shtypni platformë kaloni.

Ndërprerësi i platformës na tregon se ne do të ndërtojmë një aplikacion Android. Kjo do të thotë që kur të ndërtojmë aplikacionin, Unity do të krijojë skedar APK. Ndërrimi i platformës gjithashtu detyron Unity të riimportojë të gjitha asetet në projekt. Kjo nuk do të marrë shumë kohë për një projekt të vogël, por mbani në mend se ky operacion mund të zgjasë shumë në projekte të mëdha.

Tani duhet të japim një emër paketë për aplikacionin.

Shënim: Emri i paketës është një identifikues unik për aplikacionin dhe është shkruar në stilin e kundërt DNS në format com.CompanyName.ProductName. Pas publikimit të aplikacionit në Google Play emri i paketës nuk mund të ndryshohet më.

Për ta bërë këtë, shkoni te menyja Redakto dhe zgjidhni Cilësimet e projektit - Player.

Në anën e djathtë të Unity, do të hapet një dritare me shumë cilësime të ndryshme, si versioni i aplikacionit, objektivi dhe minimumi i SDK-së, zgjedhja e ikonave, etj. Këtu na duhet në bllok Cilësimet e tjera Gjej Identifikimi dhe vendosni emrin e paketës në fushë emri i paketës. Ju gjithashtu mund të ndryshoni cilësime të tjera nëse dëshironi.

Tani mbetet vetëm për të specifikuar shtegun për Android SDK dhe JDK. Për ta bërë këtë, shkoni te menyja dhe zgjidhni Edit-Preferencat.

Në dritaren që shfaqet, shkoni te Mjetet e jashtme dhe në fusha SDK dhe JDK specifikoni shtigjet e duhura dhe më pas mbyllni dritaren.

Hapi 6: Ndërtimi dhe ekzekutimi i aplikacionit

Është koha për të ndërtuar aplikacionin tuaj të parë Unity. Për ta bërë këtë, zgjidhni nga menyja Skedari - Ndërto cilësimet. Do të hapet një dritare, në të cilën do t'ju duhet të shtoni skenën që dëshironi të montoni. Meqenëse tashmë e kemi këtë skenë të hapur në redaktues, thjesht klikoni Shto skena të hapura për ta shtuar në asamble, pasi ta shtoni do ta shihni në listën e skenave.

Mbetet vetëm për të shtypur Ndërtoni, pas së cilës Unity do të fillojë ndërtimin e aplikacionit. Para kësaj, mund t'ju kërkohet të zgjidhni një dosje ku do të ruhen skedarët e mbledhur të aplikacionit, si dhe emrin e skedarit APK.

Shënim:ky moment nëse keni të instaluar versionin alfa në Android SDK Build-Tools(version 28.0.0-rc1), kur ndërtohet Gradle do të japë një gabim. Për ta rregulluar këtë, thjesht hiqni këtë version nga Android SDK.

Si rezultat, skedari i ndërtuar APK do të shfaqet në dosjen që specifikuat, gati për t'u instaluar në emulator ose në një pajisje të vërtetë.

Le të shohim se çfarë ka brenda APK-së së ndërtuar. Për ta bërë këtë, ne përdorim mjetin Analizues APK, i cili përfshihet me Android Studio,

Madhësia e skedarit të pakompresuar APK është 21.1 MB, në një të ngjeshur 20.9 MB. Siç mund ta shihni nga grafiku, pjesa më e madhe e vëllimit është e zënë nga bibliotekat e palëve të treta të shtuara nga Unity. Pastaj në aseteve të gjitha burimet që përdoren në skenën e montuar janë të vendosura. Skedari klasat.dex përmban vetëm 89 klasa dhe 479 metodat.

Për më tepër, nëse shikoni AndroidManifest.xml, aplikacioni përbëhet nga një aktivitet.

konkluzioni

Kjo eshte e gjitha. Në këtë artikull, ne mësuam se si të instalojmë dhe konfigurojmë Unity, dhe ndërtuam gjithashtu aplikacionin tonë të parë Android.

Si të krijoni shpejt dhe relativisht lehtë një lojë ose aplikacion të thjeshtë për Android? Lexoni për këtë në artikullin më poshtë, i cili merret me punën me motorin Unity3D.

A luani lojëra kompjuterike? Nëse po, atëherë, me siguri, në procesin e kalimit të bllokut të lojës së radhës, ndonjëherë keni pasur mendime të tilla si: "Por këtu, do ta kisha bërë gabim!". Dëshiron të bëhesh vetë zhvillues? Më pas, ju ofroj një "aventurë" të vogël, por shumë argëtuese;)

Çfarë është një motor dhe pse është i nevojshëm?

Më parë, në ditët e kompjuterëve të parë, lojërat dhe programet u krijuan me të ashtuquajturën metodë "hardcore". Kjo do të thotë, për një zhvillim të plotë, kërkohej të ishte një programues mjaft me përvojë, i cili e njeh plotësisht gjuhën e tij të programimit dhe mund të shkruajë pothuajse të gjithë lojën (përfshirë grafikë piksel dhe efekte speciale!) në një Notepad të thjeshtë. Kishte pak njerëz të tillë dhe ata vlerësoheshin shumë (dhe vlerësohen akoma) ...

Sot, pragu për të hyrë në temën e programimit është ulur ndjeshëm. Dhe kjo lehtësohet jo vetëm nga disponueshmëria e literaturës dhe e të gjitha llojeve të materialeve të trajnimit, por edhe nga procesi gjithnjë e më i thjeshtuar i zhvillimit. Në ditët e sotme, është e rrallë të takosh njerëz të vërtetë "hardcore", pasi janë shfaqur mjedise mjaft të përshtatshme zhvillimi, të cilët quhen "motorë".

Thelbi i motorit është se ju lejon të importoni të gjitha objektet e nevojshme të lojës në një mënyrë vizuale të thjeshtuar, t'i rregulloni ato në një skenë virtuale dhe të konfiguroni të gjithë parametrat e tyre. Kjo do të thotë, detyra e programuesit është vetëm të shkruajë saktë logjikën e lojës!

Sidoqoftë, ju duhet të paguani për komoditetin e punës me një rritje të lehtë të madhësisë së projektit (ndonjëherë edhe disa herë!) në krahasim me homologun e tij, të shkruar në mënyrën e vjetër "hardcore". Është për këtë arsye që disa zhvillues nuk i pëlqejnë motorët ose përpiqen të shkruajnë të tyren, në të cilin përdoren vetëm përbërësit që u nevojiten ...

Por ju dhe unë jemi larg nga programuesit e vërtetë :) Prandaj, le të krijojmë një lojë të thjeshtë për Android bazuar në motorin popullor dhe të fuqishëm Unity3D.

Fillimi me një projekt në Unity3D

Pra, pse vendosëm të përdorim Unity3D:

  • aftësia për të krijuar lojëra të plota 2D dhe 3D;
  • aftësia për të përpiluar lojën e përfunduar për çdo pajisje;
  • lehtësia relative e kontrollit të motorit;
  • zgjerim i mirë i funksionalitetit duke lidhur shtojcat;
  • madhësi relativisht e vogël e montimit përfundimtar të lojës (krahasuar me motorët e tjerë).

Atuti kryesor i Unity3D, natyrisht, është shkathtësia dhe multiplatforma e tij. Loja e mbaruar(ndoshta me një ndryshim të vogël) Mund të transferoni në PC (Windows, Linux ose MacOS), Android, PlayStation ose XBox! Për ta bërë këtë, duhet të shkarkojmë vetëm vetë motorin, i cili, nga rruga, "peshon" më shumë se një gigabajt dhe SDK-të e nevojshme (nëse është planifikuar zhvillimi për platformat mobile ose konsol). Nëse dëshironi të bëni një lojë për Windows, atëherë nuk keni nevojë të shkarkoni asgjë, por duke qenë se do të bëjmë një lojë për Android, do të na duhet të shkarkojmë edhe Android SDK (Kit për Zhvillimin e Softuerit). Unë ju këshilloj të shkarkoni SDK në një arkiv ZIP për lehtësi më të madhe për të punuar me të.

Kur të shkarkohet gjithçka, mund ta shpaketoni në çdo dosje Android SDK që është e përshtatshme për ju dhe më pas të vazhdoni të instaloni vetë Unity3D. Ai është i instaluar si çdo program i zakonshëm Windows, kështu që nuk duhet të ketë probleme me instalimin. Pas instalimit, motori do të fillojë dhe së pari do të duhet të krijojmë një projekt të ri:

Për ta bërë këtë, do të duhet të mbyllim të gjitha dritaret e mirëseardhjes dhe hyrjes, dhe më pas të zgjedhim "Projekt i ri" nga menyja "File". Në dritaren që hapet (shiko pamjen e ekranit më lart), do të na kërkohet të specifikojmë dosjen e ruajtjes së projektit (emri i tij do të jetë i njëjtë me emrin e projektit), të importojmë disa grupe funksionesh standarde (nuk na duhen) dhe të specifikojmë mënyrën e funksionimit. Zgjidhni 2D si modalitet dhe klikoni butonin "Krijo". Kjo përfundon pjesën përgatitore të punës :)

Ndërfaqja e motorit dhe hierarkia e projektit

Pas krijimit të projektit, ai do të ngarkohet në hapësirën e punës Unity3D:

Vetë kjo hapësirë ​​pune ka një strukturë modulare dhe përbëhet nga disa dritare të mbivendosura që mund të lëvizen sipas dëshirës. Unë e kam konfiguruar kështu (nga e majta në të djathtë dhe nga lart poshtë):

  1. Dritarja e hierarkisë - shfaq pozicionin hierarkik të objekteve aktive dhe joaktive në skenë. Si parazgjedhje, i vetmi objekt menjëherë në listë është Kamera kryesore.
  2. Dritarja e skenës - shfaq të gjithë skenën e lojës dhe objektet në të (përfshirë kamerat, tingujt, teksturat, etj.).
  3. Dritarja e inspektorit - shfaq të gjitha vetitë e objektit të zgjedhur në hierarki ose në skenë dhe ju lejon t'i modifikoni, plotësoni ose fshini ato.
  4. Dritarja e lojës - shfaq botën e lojës që është e dukshme për kamerën dhe ju lejon të zgjidhni madhësinë e dritares së testimit të lojës virtuale në pixel. Gjithashtu, ju lejon të aktivizoni zgjerimin e dritares së lojës në përmasa të plota (Maximize on Play) dhe të aktivizoni / çaktivizoni shfaqjen e informacioneve të ndryshme për zhvilluesin.
  5. Dritaret e projektit dhe konsolës. Dritarja e Projektit përdoret për të lundruar nëpër burimet e projektit: imazhet e ngarkuara, tingujt, modelet, etj. Gjithashtu me anë të kësaj dritareje (menuja e kontekstit) mund të krijoni objekte të reja boshe të lojës të llojeve dhe skripteve të ndryshme. Dritarja e Konsolës përdoret për të shfaqur mesazhe gabimi (e kuqe), paralajmërime (të verdha) dhe informacione të ndryshme korrigjimi të kërkuara nga ju (gri).
  6. Dritarja e etiketës së aseteve është pjesa e poshtme e dritares së inspektorit, e cila shfaq një pamje paraprake të objektit ose skedarit të zgjedhur në dritaren e Projektit.

Përveç të gjitha sa më sipër, kushtojini vëmendje tre butonave në qendër të sipërme. Ato ju lejojnë të filloni projektin tuaj, ta ndaloni atë (ndonjëherë i dobishëm kur korrigjoni për të parë se çfarë po bëhet në Hierarki, për shembull) dhe, në përputhje me rrethanat, ta çaktivizoni atë.

Ne do të krijojmë një simulator të një instrumenti muzikor: bateri popullore indiane të quajtur "tabla", prandaj, për të filluar, ne do të krijojmë dy dosje boshe në projekt në të cilat do të ruhen tingujt dhe fotografitë. Ju mund të krijoni një dosje të re duke thirrur menunë e kontekstit në dritaren e Project Navigator dhe duke zgjedhur artikullin "Folder" nga lista "Krijo".

Këtu ia vlen të thuash disa fjalë se si duhet të emërtohen këto dosje. Për një lojë të thjeshtë, si simulatori ynë, në parim, dosjet mund të "emërtohen" ashtu siç dëshironi, megjithatë, ka të paktën dy emra që është më mirë të mos përdorni, pasi ato janë të rezervuara nga motori. Këta janë emrat Burime dhe Plugins. Në projekte të mëdha, dosja "Resources" krijohet menjëherë dhe të gjitha "pjesë këmbimi" të lojës (foto, tinguj, modele, tekstura dhe parafabrika) ruhen tashmë në të (të renditura sipas nëndosjeve). Në Plugins, siç nënkupton edhe emri, ruhen të gjitha grupet shtesë të funksioneve të palëve të treta (të ashtuquajturat "pasuri" (pasuri)), prej të cilave ka mjaft në Dyqanin e Aseteve - një dyqan për shtesat për Unity3D.

Importimi i skedarëve dhe krijimi i objekteve të lojës

Para se të krijoni një projekt të ri loje, këshillohet të përgatitni paraprakisht të gjithë skedarët e nevojshëm për funksionimin e tij. Në rastin tonë, këto skedarë janë fotografi dhe tinguj. Mënyra më e lehtë për t'i importuar ato në një projekt është thjesht t'i tërhiqni dhe t'i lëshoni në dosjen e dëshiruar. Le të fillojmë me fotot...

Pasi imazhet të shfaqen në dosjen tonë Images, ato duhet të rregullohen pak:

Fakti është se si parazgjedhje Unity3D ngjesh të gjitha imazhet e shtuara në projekt me humbje të cilësisë. Nëse nuk kemi nevojë për një humbje të tillë (veçanërisht e vërtetë për lojërat me grafikë HD), atëherë duhet të zgjedhim çdo imazh dhe në dritaren e Inspektorit të ndryshojmë vlerën e parametrit "Format" nga "Compressed" në "Truecolor" në "Default". " tab. Mund t'ju duhet gjithashtu të ndryshoni parametrin "Max Size" nëse është më i vogël se gjerësia aktuale e imazhit (parazgjedhja është 1024 piksele). Pas të gjitha ndryshimeve, duhet të mbani mend të klikoni butonin "Apliko" për t'i zbatuar ato. Nëse është e nevojshme, ne kryejmë veprime të ngjashme për të gjitha imazhet e tjera.

Tani, le të krijojmë objekte të lojës nga fotot tona. Për ta bërë këtë, thjesht tërhiqni imazhin e dëshiruar në dritaren e Hierarkisë. Fotografia ose modeli 3D do të konvertohet automatikisht në një objekt loje dhe do të shfaqet në pikën fillestare të koordinatave përpara kamerës.

Para së gjithash, ne shtuam një imazh të sfondit, i cili duhet të shfaqet në ekran të plotë. Mund të kontrolloni nëse është kështu duke zgjedhur një kamerë në dritaren e hierarkisë dhe duke parë se si shfaqet korniza e saj. Në pamjen e mësipërme, mund të shihni se një pjesë e sfondit tonë mbetet jashtë pamjes së kamerës, kështu që duhet të rregullojmë madhësinë e kësaj pamjeje duke zvarritur kornizën direkt në skenë ose duke redaktuar parametrin "Size" në dritaren e Inspektorit. Në rastin tonë, ne duhej të ndryshonim vlerën e paracaktuar (5) në 5.4.

Kjo është e gjitha, ne nuk e prekim më kamerën, por shtojmë dhe rregullojmë pjesën tjetër të fotove. Kur shtojmë, shohim se disa prej tyre janë shumë të mëdha për lojën tonë. Ju mund t'i zvogëloni ato ose fizikisht në një redaktues grafik, ose me anë të motorit. Le të provojmë metodën e fundit. Për ta bërë këtë, zgjidhni imazhin në dritaren e Hierarkisë dhe në dritaren e Inspektorit ndryshoni vlerat "Scale" për koordinatat X dhe Y nga 1 në 0.5 (d.m.th., zvogëloni përgjysmë). Në të njëjtin vend, është e dëshirueshme, për të shmangur mbivendosjet, të caktoni për të gjitha objektet e lojës (përveç sfondit) një renditje jo zero të shtresave (Rend në shtresë):

Hapi i fundit në përgatitjen e objekteve të lojës nga fotografitë do të jetë "varja" e përplasësve në to. Në Unity3D, përplasësit përdoren si detektorë të ndërveprimit midis objekteve. Kjo është, në fakt, një guaskë virtuale është vendosur në foton tonë, e cila mund të regjistrojë prekje në të.

Për të shtuar një përplasës në një objekt, zgjidhni atë në dritaren e Hierarkisë dhe më pas klikoni butonin "Shto Komponent" në dritaren e Inspektorit. Në listën e komponentëve që shfaqet, ne jemi duke kërkuar për Physics 2D (fizika e zakonshme 3D nuk do të funksionojë në modalitetin tonë) dhe nga të gjitha opsionet, "Circle Collider 2D" është më i përshtatshmi për ne. Ne e zgjedhim atë. Rreth objektit tonë do të shfaqet një goditje e gjelbër, e cila tregon kufijtë e përplasësit. Mbetet vetëm të kontrolloni kutinë e kontrollit "Is Trigger" në mënyrë që përplasësi ynë të regjistrojë vetëm klikimet dhe të mos ndërveprojë më me hapësirën përreth lojës:

Veprime të ngjashme përsëriten për të gjitha objektet e mbetura. Vetëm sfondi ynë do të ndryshojë nga objektet e tjera. Për këtë, ne do të aplikojmë një Box Collider 2D dhe do të vendosim Pozicionin Z të jetë më i madh se zero për të shtyrë përplasësin dhe vetë sfondin në sfond (kjo do të na duhet më vonë).

Puna me zë

Me zërin në Unity 3D, në shikim të parë, gjithçka është disi konfuze. Por, le të përpiqemi ta kuptojmë me radhë :)

Para së gjithash, ne duhet t'i tërheqim të gjithë tingujt në dosjen "Tinguj" dhe t'i rregullojmë ato pak:

Nëse niveli i volumit të të gjithë tingujve tuaj është rregulluar fillimisht, atëherë gjithçka që duhet të bëni është të çaktivizoni përpunimin e zërit 3D. Në lojërat 3D, ky përpunim nevojitet për të simuluar afrimin e burimit të zërit kur kamera i afrohet. Por në 2D, ne nuk kemi nevojë për këtë, kështu që ne zgjedhim çdo tingull me radhë dhe zgjidhni "Tingull 3D" prej tij.

Tani mund të fillojmë të shtojmë tinguj në objektet e lojës. Për ta bërë këtë, ne duhet të zgjedhim çdo buton me radhë dhe të shtojmë një komponent të ri "Burimi i audios" në të nga seksioni "Audio". Kur të shtohet komponenti, zgjidhni butonin përkatës "Audio Clip" dhe zgjidhni kutinë e kontrollit "Play On Awake" aktiv si parazgjedhje (luajeni kur shfaqet):

Kur të gjithë tingujt janë bashkangjitur në butonat e duhur, është koha për pjesën argëtuese - skriptimin...

Skenari i parë

Para se të fillojmë të analizojmë skenarin tonë të parë, ndoshta ia vlen të thuash disa fjalë për sistemin e skriptimit në vetë Unity 3D.

Unity ju lejon të shkruani kodin në tre gjuhë menjëherë: JavaScript (më saktë, versioni i tij pak i modifikuar i UnityScript), C # dhe Boo. Në një numër librash dhe udhëzuesish, mund të gjeni mendimin se për fillestarët, skriptimi në Unity është më i lehtë për t'u zotëruar duke përdorur JavaScript si shembull. Sidoqoftë, kjo gjuhë nuk është aq e rehatshme sa të tjerat, dhe në të ardhmen ka shumë të ngjarë të duhet të mësoni përsëri. Prandaj, është më mirë të filloni menjëherë duke mësuar C # (Boo është gjithashtu i mirë, por ka pak materiale trajnimi mbi të).

Tani rreth vendit ku të shkruani kodin. Redaktori i parazgjedhur i kodit në Unity 3D është MonoDevelop IDE. Avantazhi i këtij mjedisi zhvillimi është se ai ka sugjerime për futjen e shpejtë të metodave, klasave dhe funksioneve standarde, si dhe një sistem të kontrollit të sintaksës. Megjithatë, për mua, disavantazhi ishte vëllimi dhe intensiteti i lartë i burimeve. Për fat të mirë, në cilësimet e Unity mund të vendosni çdo gjë si një redaktues teksti, kështu që unë "vara" Notepad-in e lehtë dhe funksional ++ për veten time (pothuajse të gjithë shembujt do të shfaqen në të).

Dhe e fundit. Natyrisht, pa materiale referimi në zotërimin e të gjitha ndërlikimeve të motorit, nuk do të shkoni larg, kështu që këtu është një listë e disa burimeve të ndjeshme të Internetit në temën e Unity 3D:

  • http://docs.unity3d.com/ru/current/Manual/UnityManualRestructured.html - manual zyrtar për motorin me përkthim të pjesshëm në Rusisht (u shfaq kohët e fundit dhe ndonjëherë është i paqëndrueshëm);
  • http://docs.unity3d.com/ru/current/ScriptReference/index.html - manuali zyrtar i referencës së skriptimit në anglisht;
  • http://unity3d.ru/distribution/index.php - forumi rus për zhvilluesit e Unity 3D;
  • http://habrahabr.ru/post/141362/ - një seri mësimesh për krijimin e lojërave tredimensionale në Habrahabr;
  • http://msdn.microsoft.com/ru-ru/library/618ayhy6.aspx - Referenca zyrtare e Microsoft C# në Rusisht.

Epo, për të mos e zvarritur për një kohë të gjatë, unë propozoj që menjëherë të krijohet skenari i parë. Nën skriptet, nëse ka shumë prej tyre, është më mirë të ndani një dosje të veçantë, por loja jonë do të jetë e thjeshtë, kështu që ne mund të krijojmë një skenar direkt në dosjen rrënjë të projektit. Për ta bërë këtë, thirrni menunë e kontekstit në dritaren e Projektit, zgjidhni listën Krijo dhe klikoni "C# Script". Le ta emërtojmë skriptin tonë të ri, për shembull, Tinguj dhe ta hapim me një klik të dyfishtë. Pasi të keni hequr metodat standarde Përditësimi dhe Fillimi, dhe më pas, pasi kemi regjistruar ato të nevojshme, marrim skriptin e mëposhtëm:

Nëse nuk e keni rikonfiguruar redaktorin, atëherë skripti ynë do të hapet në MonoDevelop. Le të hedhim një vështrim në strukturën e tij ...

Në fakt, çdo skript C# përbëhet nga tre pjesë kryesore:

  1. Në krye, renditen bibliotekat që duhet të lidhen që skripti të funksionojë (për shembull, "duke përdorur Unity.Engine" lidh punën e vetë motorit dhe "duke përdorur System.Collections" - një bibliotekë që përmban një numër e klasave të integruara që skripti të funksionojë në sisteme të ndryshme).
  2. Deklarata e klasës dhe variablave. Nuk ka asnjë koncept të një skripti në C# si i tillë. Në vend të kësaj, përdoret koncepti i një "klase", i cili përfshin një sërë metodash dhe funksionesh. Edhe pse, në fakt, në kontekstin e Unity 3D, kjo është pothuajse e njëjta gjë :) Gjëja kryesore që duhet mbajtur mend është se emri i klasës duhet të përputhet me emrin që i kemi dhënë skenarit. E veçanta e variablave në C# është se ato duhet (përveç atyre të përkohshme, të cilat janë deklaruar në vetë skriptin) të shtypen. Praktikisht kjo do të thotë që për variablin duhet të specifikohet niveli i aksesit (privat ose publik) dhe lloji (int, float, bool ose siç kemi në skript, AudioClip).Në të njëjtën kohë, çdo emër i ndryshores mund të jetë Ose mund t'i jepni menjëherë një vlerë.
  3. Një grup metodash dhe funksionesh. Një metodë në C# është pothuajse çdo funksion që kryen veprime të caktuara. Në parim, në literaturën mbi Unity 3D ato quhen funksione, por nëse po flasim për C # si një gjuhë programimi më vete, atëherë këto janë, në fund të fundit, metoda :). Funksionet e pastra në Unity janë, për shembull, funksionet standarde për nxjerrjen e zërit, vizatimin e elementeve GUI, etj., të cilat përdoren brenda metodave.

Duke ditur tashmë strukturën e skriptit, është e lehtë të kuptohet kuptimi i tij, i cili zbret në sa vijon... Në klasën Sounds (script), deklarojmë 9 variabla të llojit AudioClip me emrat që na duhen për lehtësinë e duke i dalluar ato. Ne i bëjmë ato domosdoshmërisht publike (ato private nuk do të shfaqen në redaktues dhe do të na duhet t'u "varim" tingujt përmes redaktorit). Dhe më pas në trupin e skriptit përdorim metodën standarde "void OnMouseDown ()". Më parë, ai ishte përgjegjës vetëm për përpunimin e një klikimi të mausit, por në versionet e reja interpretohet edhe si prekje në ekranin me prekje. Në të shkruajmë kushtet me të cilat kontrollojmë emrat e përplasësve të shtypur dhe, nëse zbulojmë një shtypje të njërit prej tyre, nxjerrim tingullin përkatës (përdorim funksionin standard audio.PlayOneShot();

Kur shkruani kodin, kini kujdes që të përfshini të gjitha kllapat hapëse dhe mbyllëse, përndryshe do të merrni vazhdimisht raporte gabimesh në Konsolë dhe nuk do të mund ta ekzekutoni fare projektin tuaj! Kushtojini vëmendje edhe përdorimit të shkronjave të mëdha në emrat e metodave dhe funksioneve. Ata janë gjithashtu shpesh shkaku i gabimeve. Dhe, sigurisht, vëzhgoni të gjitha shenjat (periudha, dy pika dhe kllapa), me pak fjalë, sintaksën e gjuhës. Në fillim do të jetë e vështirë, por me kalimin e kohës do të filloni të shkruani nga e para pa gabime!

Kur skripti të jetë gati, zgjidhni atë dhe në dritaren e Inspektorit caktoni një tingull të ndryshëm për secilën variabël. Tani ne vetëm duhet të aplikojmë skenarin tonë në objektet në skenë. Mënyra më e lehtë për ta bërë këtë, përsëri, është duke zvarritur skriptin direkt në objektin e dëshiruar të lojës në listën e Hierarkisë:

Nëse skripti është zvarritur saktë, atëherë ai duhet të shfaqet në dritaren e Inspektorit pranë objektit në të cilin e kemi tërhequr. Prandaj, ne e tërheqim skenarin në të gjitha objektet që duhet të tingëllojnë në lojë dhe mund të përpiqemi ta ekzekutojmë atë. Kur klikoni në butonat tanë të lojës, tani, më në fund, tingulli i specifikuar do të tingëllojë!

Hyrje në GUI

Në parim, loja tashmë funksionon me ne, por disi është shumë "tullace". Diçka mungon në të ... Ose, të paktën, një mbishkrim me emrin që është para nesh! Me fjalë të tjera, ju duhet të zbatoni një lloj ndërfaqeje të kuptueshme të përdoruesit.

Në fakt, GUI është një shkurtim për anglisht. "Ndërfaqja grafike e përdoruesit", domethënë një ndërfaqe grafike e përdoruesit. Tradicionalisht, ai përfshin përbërës të tillë si:

  • butona;
  • dritare;
  • zonat e tekstit;
  • kutitë e kontrollit dhe/ose butonat e radios;
  • rrëshqitës (shirita lëvizës) etj.

Në Unity 3D E gjithë kjo (dhe madje diçka më shumë se kaq) është plotësisht e pranishme. Gjëja kryesore është të mësoni se si ta përdorni atë! Le të hedhim një vështrim se si GUI e Unity mund të bëjë një titull të thjeshtë.

Për ta bërë këtë, krijoni një skript të ri të quajtur Interface dhe modifikoni atë si më poshtë:

Konsideroni me kujdes skenarin në pamjen e ekranit. Këtu shkruajmë vetëm një ndryshore publike të llojit GUIStyle, e cila është e re për ne. Ky lloj ju lejon të ndryshoni vizualisht pamjen e elementeve të cilave u është caktuar ky stil. Stilet janë të dobishme kur ka shumë elementë të ndërfaqes të të njëjtit lloj (për shembull, butona), por ato duhet të kenë një pamje të ndryshme.

Tjetra, ne krijojmë një buton ("GUI.Button"), i cili ka sintaksën e mëposhtme: kusht - 4 koordinata (hyrje horizontale nga skaji i majtë, dhëmbëzimi vertikal nga buza e sipërme, gjerësia, lartësia) - teksti i dukshëm në thonjëza dhe më tej , sipas dëshirës, ​​tregues i stilit. Funksionet e nevojshme shkruhen brenda kushtit të butonit. Në rastin tonë, ne kemi regjistruar kalimin në faqen e zhvilluesve ("Application.OpenURL("");").

Skriptet GUI mund të funksionojnë nga çdo objekt i lojës, por zakonisht ata këshillohen t'i "varin" ato në kamerë, gjë që do ta bëjmë duke e tërhequr skriptin në objektin e Kamera kryesore. Tani, nëse e zgjedhim në dritaren Hierarchy, atëherë në dritaren Inspector do të mund të shohim variablin publik të stilit tonë, duke e zgjeruar atë, do të kemi akses të plotë në cilësimet e këtij stili!

Ne mund të specifikojmë ngjyrën dhe strukturën e tekstit për sfondin në çdo situatë (për butonin, duhet të regjistroni tre opsionet e tij (Normal - pamje normale, Hover - në hover dhe Active - në klikim), të vendosni mbushjen dhe të rregulloni fontin. Si parazgjedhje, fonti i vetëm i disponueshëm në Unity 3D është Arial, megjithatë, mund të ngarkoni manualisht çdo font tjetër në projekt dhe ta aplikoni atë në fushën "Font", duke vendosur të gjithë parametrat përkatës.

Ajo që është interesante dhe në të njëjtën kohë jo shumë e përshtatshme është se elementët GUI nuk shfaqen në skenë derisa të fillojmë projektin, kështu që rregullimi i parametrave të secilit element mund të marrë shumë kohë. Le të ekzekutojmë projektin dhe të shohim se si do të duket butoni ynë i krijuar më lart:

Ndryshimi i ndërfaqes sipas kushteve dhe ndryshoreve statike

Ne kemi bërë tashmë shumë, por ka gjithmonë vend për përmirësim :) Prandaj, unë propozoj, si shembull të fundit, të krijojmë një dritare ndihmëse, me të cilën zhvilluesit normalë zakonisht furnizojnë lojërat dhe aplikacionet e tyre. Për ta bërë këtë, shtoni një fotografi për një buton të tillë në formën e një pikëpyetjeje në dosjen me imazhe dhe bëni një objekt loje prej saj. Le të varim një përplasës në të dhe të shkruajmë një skenar me një emër, për shembull, "Ndihmë" me përmbajtjen e mëposhtme:

Në këtë skenar, ne kemi dy variabla. Variabla e parë përcakton lëkurën që do të përdoret për të gjithë elementët e ndërfaqes të përshkruar në këtë klasë. Ndryshe nga stilet, të cilat diskutuam më lart, lëkurat ju lejojnë të ndryshoni pamjen jo vetëm të elementit individual të cilit i janë caktuar, por të gjithë elementëve të një lloji të caktuar menjëherë. Përveç kësaj, ndryshe nga stilet, lëkurat nuk u caktohen elementeve, por deklarohen menjëherë për të gjithë metodën dhe funksionojnë derisa të deklarohet një lëkurë tjetër. Duhet mbajtur mend gjithashtu se lëkurat ekzistojnë jo vetëm si variabla, por edhe si skedarë individualë. Prandaj, përpara se të deklaroni një lëkurë, duhet ta krijoni menjëherë në dritaren "Project" nga menyja e kontekstit: "Create" - "GUI Skin".

Ndryshorja e dytë që kemi është një logjike (ose ndryshe Boolean). Mund të ketë vetëm dy vlera: "true" (e vërtetë) ose "false" (false). Për shkak të natyrës së saj binare, një variabël i tillë është i përsosur për zbatimin e të gjitha llojeve të ndërprerësve. Në rastin tonë, ai do të jetë përgjegjës për shfaqjen e tekstit që përshkruan lojën tonë.

Sidoqoftë, nëse shikoni nga afër, do të vini re se ndryshorja e fundit ka një parametër të mrekullueshëm - "statik". Shtimi i këtij parametri në variabla ju lejon t'i bëni ato statike dhe t'i aksesoni ato nga skriptet e tjera!

Por kthehemi te pjesa tjetër e kodit. Metoda "void OnMouseDown()" tashmë e njohur për ne këtu do të shërbejë si një ndërprerës për variablin "isVisible" duke përdorur një kusht të thjeshtë. Megjithatë, pas gjendjes ka një funksion tjetër. Ky funksion ("Debug.Log();") përdoret për të nxjerrë "në fluturim" në Konsolë vlerat e variablave që na duhen (i vendosim ato pa thonjëza në kllapa). Siç mund ta shihni, brenda një funksioni, mund të kombinoni tekstin e pandryshueshëm (të shkruar në thonjëza) dhe variablat (pa thonjëza). Gjëja kryesore është se duhet të ketë një shenjë "+" midis të gjitha të dhënave.

Më tej në tekstin e skriptit, kemi një metodë për vizatimin e ndërfaqes ("void OnGUI()()"), brenda së cilës shohim deklarimin e një lëkure të re ("GUI.skin = HelpSkin;") dhe një të re element i ndërfaqes i tipit GUI.Box. Ndryshe nga një buton, një kuti është një element joaktiv dhe zakonisht shërben për të shfaqur të dhëna të ndryshme teksti ose grafike.

Kushtojini vëmendje mënyrës se si vendosim pozicionimin për kutinë. Këtu, të gjitha vlerat nuk specifikohen drejtpërdrejt, por me ndihmën e shprehjeve matematikore, të cilat, në fakt, janë një analog i "paraqitjes fluide" në zhvillimin e uebit. Problemi është se kur specifikoni madhësitë e sakta të elementeve GUI në rezolucione të ndryshme të ekranit, ato nuk do të përshtaten dhe mund të jenë ose shumë të vogla ose, anasjelltas, të mëdha. Në versionin tjetër të motorit, zhvilluesit premtojnë ta bëjnë GUI-në adaptive, por deri më tani duhet të shtrembërojmë :(

Hapi i fundit në rrugën drejt suksesit do të jetë personalizimi i lëkurës sonë. Ne specifikojmë skedarin e lëkurës në variablin e skriptit dhe më pas zgjedhim këtë skedar në dritaren e projektit. Ashtu si me skedarët e tjerë, cilësimet e lëkurës do të shfaqen në dritaren e Inspektorit. Këtu ne jemi duke kërkuar për elementin që mund të ndryshojë (në rastin tonë, Box), hapeni dhe vendoseni në të njëjtën mënyrë si stili i diskutuar më sipër:

Për të parë nëse skripti ynë funksionon siç duhet, le të ekzekutojmë projektin dhe të përpiqemi të klikojmë në butonin e ndihmës:

Tani gjithçka funksionon, por nuk është gjithmonë e përshtatshme të shtypni butonin e ndihmës për të fshehur përsëri përshkrimin. Është më e zakonshme të futni çdo njoftim në ndonjë vend i lirë sesa të synoni butonat. Dhe këtu duhet të përdorim vetëm faktin që e bëmë variablin "isVisible" statik, si dhe përplasjen e varur në imazhin e sfondit...

Le të kthehemi te skenari ynë i parë ("Tingujt"), i cili gjurmoi shtypjen e butonit për të luajtur tinguj. Do të jetë e mjaftueshme që ne të shkruajmë vetëm një rresht në të (më saktë, brenda metodës "void OnMouseDown ()":

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

Me këtë rresht vendosim një kusht: nëse emri i përplasësit të shtypur nuk është i barabartë me emrin e butonit të ndihmës, atëherë ndryshorja "isVisible" në skriptin "Help" do të jetë e barabartë me "false". Vetëm është e nevojshme që ndryshorja "isVisible" të ketë patjetër postscriptin "static", përndryshe do të kemi një gabim.

Tani, në nisje, do të shohim që dritarja jonë e ndihmës është e mbyllur jo vetëm kur klikojmë në butonin në këndin e sipërm djathtas, por edhe kur prekim ndonjë pjesë të lirë të ekranit. E vetmja gjë që mund të përmirësohet është që dritarja të fshihet kur klikoni mbi të... Kjo do të jetë "detyra juaj e shtëpisë";) Mund të them vetëm se kutia GUI do të duhet të ndryshohet në një buton të krijuar në mënyrë të ngjashme, përsëri , me vendosjen e lëkurës dhe duke përshkruar një funksion që ndryshon ndryshoren "është e dukshme". Gjithçka, hesht :)

Përpilimi i lojës dhe ruajtja e projektit

Më në fund, gjithçka funksionon për ne! Kjo do të thotë se është koha për të ruajtur lojën tonë dhe për ta testuar atë në një pajisje të vërtetë. Dhe për këtë, duhet të përpilohet në një skedar të ekzekutueshëm (për Windows, për shembull, në EXE, dhe për Android, në APK).

Nëse dëshironi të përpiloni një lojë për PC, atëherë nuk keni nevojë të bëni ndonjë cilësim paraprak. Sidoqoftë, për Android, së pari do t'ju duhet të lidhni Android SDK që kemi shkarkuar në fillim. Kjo bëhet mjaft thjesht: shkoni te menyja "Ndrysho", telefononi artikullin "Preferencat" dhe në dritaren që hapet, shkoni te skeda "Mjetet e jashtme". Këtu po kërkojmë rreshtin "Vendndodhja e Android SDK" dhe në të tregojmë shtegun drejt arkivit të papaketuar me SDK (shih pamjen e ekranit më poshtë). Nga rruga, këtu mund të ndryshoni gjithashtu redaktuesin monstruoz të tekstit MonoDevelop aktiv si parazgjedhje në atë tuaj të preferuar :)

Dhe tani ka ardhur momenti i së vërtetës! Shkoni te menyja "File" dhe shikoni për artikullin "Build Settings" atje. Në dritaren që hapet, do të duhet të shtojmë menjëherë skena për montimin. Nëse ka vetëm një skenë (si në projektin tonë), atëherë do të mjaftojë të klikoni butonin "Shto aktuale". Nëse ka disa prej tyre, atëherë do t'ju duhet të hapni secilën prej tyre dhe t'i shtoni në listën e skenave në të njëjtën mënyrë, dhe më pas, duke zvarritur dhe lëshuar, rregulloni rendin e tyre të dëshiruar:

Hapi tjetër është të zgjidhni platformën e ndërtimit (ne po planifikojmë një lojë për Android, që do të thotë se e zgjedhim) dhe klikoni butonin "Cilësimet e lojtarit" më poshtë. Dritarja e Inspektorit do të hapë një sërë cilësimesh, disa prej të cilave janë të detyrueshme ose shumë të dëshirueshme. Është e dëshirueshme që në krye të listës së cilësimeve të tregohen emrat e kompanisë zhvilluese, programi dhe ikonën e tij (përkatësisht Emri i Kompanisë, Emri i Produktit dhe Ikona e Parazgjedhur).

Në fund, në seksionin "Cilësimet e tjera", ka dy parametra të kërkuar: "Identifikuesi i paketës" dhe "Versioni i paketës". Versioni i paracaktuar është vendosur si 1.0, por identifikuesi do të duhet të krijohet manualisht dhe, mundësisht, unik. Ai duhet të përbëhet nga tre pjesë, të ndara nga njëra-tjetra me pika: fjala e rezervuar "com", më pas emri i kompanisë zhvilluese dhe në fund emri i vetë aplikacionit.

Ju mund të ndryshoni pjesën tjetër të cilësimeve të montimit sipas gjykimit tuaj ose të mos ndryshoni fare. Gjëja kryesore është që tani përpilimi tashmë do të jetë në gjendje të fillojë. Për ta bërë këtë, thjesht klikoni butonin "Build" në dritaren "Build Settings" dhe prisni derisa programi të na japë një aplikacion të gatshëm të paketuar në një skedar APK :)

konkluzioni

Kjo përfundon rishikimin tonë të mësimit për krijimin e aplikacioneve më të thjeshta për Android. Në mënyrë që të mund të përsërisni gjithçka për të cilën folëm, në fund të artikullit do të jap një lidhje me arkivin, i cili do të ruajë të gjitha burimet e lojës si një dosje të veçantë (nëse doni të bëni gjithçka nga e para) dhe si një skedar me shtesën unitypackage. Kjo e fundit ju lejon të importoni të gjithë projektin në Unity menjëherë, duke përfshirë varësitë, etj.

Për të importuar projektin tonë (dhe, meqë ra fjala, çdo shtojcë të shkarkuar nga Interneti ose Dyqani i Aseteve), duhet të shkoni te menyja "Assets", të zgjidhni artikullin "Import Paketë" dhe në të "Paketa e personalizuar", më pas specifikoni rrugën drejt skedarit tonë dhe shtypni butonin "Import". Nga rruga, ju mund të bëni një kopje rezervë të plotë të projektit tuaj, duke e ruajtur atë në një paketë të tillë unike, nga e njëjta meny ("Asetet") duke klikuar në artikullin "Paketa e eksportit".

Duket se gjithçka :) Si një person që vetë zotëroi Unity 3D nga e para, në artikull u përpoqa t'i përgjigjem numrit maksimal të pyetjeve dhe të theksoj nuancat kryesore të punës me motorin që lindin në fillim. Por, ndoshta, kjo nuk do të jetë e mjaftueshme për dikë, prandaj, nëse keni ndonjë pyetje, mund të më kontaktoni ose drejtpërdrejt me postë ose në forum: Unë do t'ju ndihmoj në çdo mënyrë që mundem!

Ju uroj të gjithëve fat dhe realizim të suksesshëm të të gjitha projekteve!

P.S. Lejohet të kopjohet dhe citohet lirisht ky artikull, me kusht që të tregohet një lidhje e hapur aktive me burimin dhe të ruhet autorësia e Ruslan Tertyshny.