SlideShare ist ein Scribd-Unternehmen logo
1 von 17
KAUNO TECHNOLOGIJOS UNIVERSITETAS
INFORMATIKOS FAKULTETAS
DARBAS SU UNITY VARIKLIUKU, JO GALIMYBĖS
Darbas Grupėje
Darbą atliko:
Martynas Diedonis,
Simonas Penkinas,
Tomas Kučinskas,
Martynas Mitka,
Liudas Butkus
KAUNAS, 2015
Terabaitai
2
Turinys
1. Įvadas.................................................................................................................................3
2. Vartotojo sąsaja (Martynas Mitka) ................................................................................4
 Vartotojo supažindinimas su programa .........................................................................4
 Minimalistinė, švari aplinka...........................................................................................5
 Tinkamai ir trumpai pavadinti funkciniai mygtukai ......................................................5
 Funkcijų / informacijos grupavimas ..............................................................................6
 Valdymas turi būti intuityvus.........................................................................................6
 Programa turi būti lengvai pasiekiama...........................................................................7
 Pasiruošti vartotojų klaidoms.........................................................................................7
 Sekti vartotojų apsiliepimus...........................................................................................7
3. Integruotos sistemos (Simonas Penkinas) .....................................................................8
 Fizika..............................................................................................................................8
 Audio..............................................................................................................................9
4. Platformos ant kurių veikia Unity (Martynas Diedonis).............................................10
 Mono kūrimo platforma...............................................................................................10
 Grafikos, fizikos...........................................................................................................10
 Nuo platformos priklausanti kompiliacija(Platform dependent compilation) .............10
 Shaders.........................................................................................................................10
5. Programavimas įvairiomis kalbomis (Liudas Butkus).................................................11
6. Efektai..............................................................................................................................12
7. Greitis ir stabilumas.........................................................................................................13
8. Išvados .............................................................................................................................14
Terabaitai
3
1. Įvadas
Terabaitai
4
2. Vartotojo sąsaja (Martynas Mitka )
Žaidimo kūrimo platformos pamatinis tikslas visada turėtų išlikti vienodas - supaprastinti ir
pagreitinti kūrėjų darbą, bei užtikrinti gerą galutinio produkto veikimą. Dėl šios priežasties platformų
kūrėjai nenorėdami prarasti konkurencingumo su kiekviena versija stengiasi optimizuoti savo
produktus, pridėti papildomų funkcijų, bei žinoma tuo pačiu metu stengtis, kad visa tai vartotojui būtų
pateiktą patogiai ir aiškiai. Nors dažniausia viešai išafišuojami pirmieji punktai susyja su platformos
galimybėmis, tačiau būtent pastarasis ( vartotojo sąsajos ) aspektas lemia platformos sėkmę. Kad ir
kokia puiki platforma bebūtų, niekas ja nesinaudos, jei tai daryti bus ypatingai sudėtinga. Šioje srityje
labai sėkmingai dirba Unity komanda, su tokio pačio pavadinimo nemokama žaidimų kūrimų
platforma. Vienas pagrindinių šios platformos pranašumu prieš kitas yra būtent sugebėjimas tinkamai
pateikti produktą ir įrankius visiems suprantamu būdu ir taip supaprastinti kūrėjų darbą.
Dažnai gera vartotoja sąsaja tampa tada, kai ne tik puikiai išpildoma viena ar kita
rekomendacija, o tada, kai visa programa veikia dinamiškai, jos valdymas natūraliai įsilieją į darbą,
tampa nepastebimas ir ji pati nesukelia papildomu sunkumų vartotojui. Šis tikslas gali būti
pasiekiamas protingai įgyvendinat viešojoje erdvėje jau labai aiškiai suformuotus patrauklios
vartotojo sąsajos, angliškai -„user interface“ (vėliau tiesiog UI) principus, pagal kuriuos ir nagrinėsiu
Unity UI sistemą. Stengsiuosi panagrinėti kiekvieną aspektą atskirai ir savo pastebėjimais įvertinti ar
šių principų laikomasi, galbūt Unity komanda sugalvojo dar profesionalesnių būtų juos realizuoti.
Taigi štai šie principai, kuriais vadovaujantis pagal viešojoje erdvėje prieinamus šaltinius galima
sukurti puikią UI sistemą:
 Vartotojo supažindinimas su programa
Šioje srityje Unity komanda atrodo bene stipriausia, neminint to, kad šį platformą turi
milžinišką bendruomene, kuri noriai dalinasi savo patirtimi, jos kokybiška mokymo sistemą leidžia
labai patogiai ir greitai susipažinti su žaidimo platforma. Pradedantiesiems skirta ypač daug dėmesio,
jiems sukurta ištisa mokymo programa video formatu youtube svetainėje, kurioje pradedantysis yra
Terabaitai
5
supažindinamas su pagrindinėmis funkcijomis, palaipsniui einama prie sudėtingesnių dalykų.
Lygiagrečiai yra pateikiami baziniai modeliai, su kuriais Unity leidžia lengvai ir nemokamai
eksperimentuoti vartotojams ir taip praktiniu būdu greičiau ir giliau įsisavinti informaciją. Norintiems
gilintis į labiau specifinius dalykus yra pateikiamos nuorodos į šaltinius kuriuose jie gali gauti daugiau
žinių. Vartotojas nuo pat pradžių neišsigąsta galybės aplink esančių įrankių, nes visada žino kur gali
gauti papildomos informacijos. Vartotojo apmokymo srityje Unity kartelę iškėlusi tikrai aukštai, tokią
gerą apmokymų sistemą pateikti sugeba tik vienetiniai produktai, todėl tai yra didelė UI sistemos
pasisekimo priežastis
 Minimalistinė, švari aplinka
Kiekvienas darbo langas turi būti lengvai skaitomas ir neapkrautas papildomomis dėtelėmis,
kurios smarkiai vargina ir blaško vartotoją. Todėl patartina visuose languose išlaikyti minimalistinį
stilių. Kadangi Unity UI sistemoje esama didelis kiekis skirtingų pasirenkamųjų funkcijų, visiško
minimalizmo tikėtis negalima. Tačiau nepasakyčiau, kad principas liko neišpildytas visai. Atsisakyta
papildomų ornamentinių detalių, įrankių bei papildomų langų kombinacijas galima susidėlioti
visiškai rankiniu būdu, pagal kiekvieno poreikius. Tai suteikia vartotojui galimybę susikurti būtent
jam patogią aplinka, neapkraunant ekrano dėmesnį blaškančiais langais. Sveikintina ir tai, jog spalvų
gama pagrindinėje temoje susideda iš kontrastingu ir blankesnių atspalvių, kas platformai ir suteikia
lengvumo jausmą ir iš dalies kompensuoja tą triukšmą, kurį mūsų akims suteikia nemažas kiekis
mygtukų.
 Tinkamai ir trumpai pavadinti funkciniai mygtukai
Vartotojo sąsajoje nemaža dalis informacijos perduodama ne tik vaizdais, bet ir tekstu. Todėl
būtina atsižvelgti, kad kiekvienas mygtukas būtų pavadintas prasmingai ir visiems suprantamai.
Kadangi dauguma komandų šioje platformoje yra gan standartiškos, tai kūrėjams nereikėjo ilgai
kvaršinti sau galvos, o jei ir reikėjo tai jų darbas nenuėjo veltui. Dažnas vartotojas mestelėjęs akį į
mygtuką iškart supranta kokia jo paskirtis, o jei ir iškylą klausimų, tai visada galima pritraukus savo
pelytės žymekli prie mygtuko ir išvysti platesnį paaiškinimą su pavyzdžiais. Taigi Unity
pasinaudodama standartinių kitų platformų pavydžių puikiai pritaikė šį principą savo platformoje.
Terabaitai
6
 Funkcijų / informacijos grupavimas
Bet kokiam žmogui visą informacija įsisavinti daug lengviau, kai ji suskirstoma į tam tikras
grupes, dažniausia pagal panašią ypatybę ar logine seką. Todėl, kad vartotojo sąsaja būtų efektyvi
svarbu visas platformos funkcijas suskirstyti į tam tikrus blokus, kad vartotojui būtų kuo paprasčiau
orientuotis ir naviguoti platformos viduje tarp skirtingų savo prasme funkcijų. Unity šioje srityje
įgyvendino gan inovatorišką idėją ne tik visą informaciją tvarkingai ir pagal gan aiškias logines
prasmes sugrupuoti blokais, langais, bet ir kurti atskirus tokių blogų modulius, kurie gali būti
prijungti pasirinktinai pagal kūrėjo norus. Tai sutaupo
daug laiko, kai kuriamos standartinės žaidimų scenos,
nes pasirinkus visą modulį iš platformos patogioje vietoje
atkeliami visi potencialiai vartotojui reikalingi įrankiai.
Tarkim, kai dirbama su scenos fonu, galima vienu metu
pasirinkti tekstūrą, ją apdoroti su vietoje esančiais
įrankiais, pakeisti tekstūros atspalvį, matomumą. Žodžių
visi potencialiai reikalingi įrankiai yra pateikiami
viename funkcijų bloke, ir vartotojui nereikia ieškoti
kiekvieno įrankio atskirai. Tai užtikrina patogų vartotojo
darbą ir prideda didelį pliusą šiai žaidimų platformai.
 Valdymas turi būti intuityvus
Vartotojui daug patogiau dirbti su programa kuri yra panaši į kitas, jau egzistuojančias
programas. Būtent dėl to dauguma šių laikų vartotojų sąsajos sistemų iš pirmo žvilgsnio yra
tarpusavyje labai panašios. Ne išimtis ir Unity UI sistema, kuri turi standartinio („Tab“) stiliaus
įrankių juostą. Naudotojui intuityviai bus aišku, kaip išsaugoti ar atsidaryti failą. Unity taip pat
neblogai išvystė ir „drag and drop“ sistemą. Pradedant nuo tiesioginio modelio įkelimo į žaidimo
kurimo scena, modelių transformacijų atlikimo iki darbo langų kilnojimo iš vienos pozicijos į kitą.
Terabaitai
7
 Programa turi būti lengvai pasiekiama
Gan paprasta, bet svarbi detalė. Neatkreipus į tai dėmesio, galima gan skaudžiai nudegti. Kiek
vartotojų kantybės galėtų atimti, tai jog kiekvieną kartą naudojantis programą reikėtų paspausti
dešimt skirtingų mygtukų. Mes mėgstame paprastuma ir greituma, nors tai gal ir teužimtų kelias
papildomas sekundes. Unity ėmesi gan gudrios strategijos šioje dalyje, tačiau naudojantis programa
vis tiek pastebėtume šiek tiek nesklandumu šioje sirtyje. Pagrinde norint patekti į norimą projektą
užtenka spustelti kelis kartus ir tu jau norimame žaidimi projekte, visas papildomos parinktys, jei
tokių reikia jau galima rasti ieškant rankiniu būdu. Tačiau, kai atsiranda platformos atnaujinimai ar
skelbiama reklaminio pobudžio informacija ši procedura gali šiek tiek suerzinti, nes atsiranda keli
papildomi langai.
 Pasiruošti vartotojų klaidoms
Kartais visiems, o dažniausia naujokams pasitaiko atveju, kai netyčia ar iš nežinojimo
pradanginame duomenis ar failus su kuriais dirbame. Tokios klaidoms išvengti kuriamos papildomos
apsaugos sistemos. Viena paprasčiausiu, tai papildomas langas kuris aiškiai paklausia ar tikrai norime
atlikti vienokius ar kitokius pakeitimus. Kas ypatinga Unity žaidimų platformoje, tai jog šie
apribojimai apgalvoti labai gerai, išvengta daug vartotojo loginių klaidų, yra būdas viska perstatyti į
„default“ reikšmes. Pavyzdžiui, jei vartotojas dirba su vieno tipo modeliais sistema neleis pritaikyti
kito tipo savybių. Dar vienas didesnių pliusų, tai jog yra galimybė automatiškai saugoti projektus
virtualiame projekte, taigi sumažėja duomenų praradimo rizika. Tačiau, kad ir kokie apribojimai
galioje šioje platformoje, tai jokiu būdu nevaržo kūrėjo laisvės, tiesiog palengvina komunikavimą su
platforma.
 Sekti vartotojų apsiliepimus
Svarbi tobulėjimo dalis yra pastovus trūkumų ieškojimas ir šalinimas. Tam
pasitelkiami testuotojai, tačiau naudingiausi atsiliepimai būna ir pačių vartotojų.
Būtent dėl šios priežasties Unity turi gerą klientų aptarnavimo ir atsiliepimų
rinkimų sistemą, kuri glaudžiai susėjusi su žaidimo kūrimo platforma.
Kiekvienas gali patogiai ir greit parašyti savo apsiliepimas, klaidų pastebėjimus
ar nusiskendimus, kad platforma galėtų būti toliau tobulinama. Abipusė nauda
visada gerai, todėl toks Unity strategijos kūrimas yra pagirtinas.
Terabaitai
8
3. Integruotos sistemos (Simonas Penkinas)
 Fizika
Norint suteikti žaidimui didesnį realumo jausmą, objektas žaidime turi tinkamai įsibegėti, turi
būti veikiamas susidūrimų, žemės traukos ir kitų jėgų. Programoje „Unity“ esantys fizikos varikliukai
suteikia komponentus, kurie sukuria fizinę imitaciją. Įrašius kelis parametrus, sukuriamas pasyvus
objektas, kuris elgiasi realistiškai – yra veikiamas susidūrimų ir kritimų, bet pats objektas
spontaniškai nejuda. Redaguojant objekto parametrus, galima objektui suteikti dinamiką, panašią į
automobilio arba net judančios šluostės.
„Unity“ egzistuoja du fizikos varikliukai. Vienas yra trijų dimensijų fizikai, o kitas – dviejų.
Pagrindinė idėja yra ta pati, tik jie įgyvendinami su skirtingom detalėm. Pavyzdžiui, „Unity“ yra
įtaisytas Rigidbody (standusis komponentas) ir Rigidbody 2D.
Rigidbody (angl. standusis komponentas) yra pagrindinė detalė, kuri suteikia fizinį
funkcionavimą objektui. Sukurtas standusis objektas iš karto paklus gravitacjos jėgai. Jeigu yra vienas
ar daugiau Collider (susidūrimo komponentų) tada standusis objektas bus veikiamas susidūrimų.
Rigidbody yra judinamas dviejų dimensijų fizikos varikliuko. Tai yra daroma veikiant objektą
kokia nors jėga, kuri verčia patį objektą pasisukti ar pakeisti poziciją.
Rigidbody turi savybę, kuri leidžia objektui pereiti į „miego“ būseną, kai jis juda mažesniu nei
nustatytu minimaliu linijiniu ar sukamuoju greičiu. Tada varikliukas supras, kad objektas nejuda. Kitą
kartą objektas pajudės, kai jį paveiks susidūrimas ar jėga. „Miego“ būsenoje esančiam objektui bus
skirta mažiau procesoriaus darbo iki tol, kol objektas bus „pažadintas“.
Collider (angl. susidūrimo komponentai) nusako objekto formą dėl fizinio susidūrimo tikslų.
Žaidime šis komponentas nebūtinai turi būti tos pačios formos kaip ir pats objektas. Net atvirkščiai –
suapvalinimas yra efektyvesnis žaidimo metu.
Paprasčiausi (ir mažiausiai procesoriaus darbo reikalaujantys) Collider komponentai vadinami
primityviaisiais. Trijose dimensijose jie yra: Box (dėžės), Sphere (sferos), Capsule (kapsulės).
Dviejose dimensijose yra naudojami: Box 2D ir Circle (apskritimo). Į objektą galima jų įdėti neribotą
skaičių, norint sukurti sudėtinius susidūrimo komponentus.
Kruopščiai dėliojant Collider galima gan gerai sukurti objekto formą ir neapkrauti procesoriaus
darbo. Tačiau, norint gauti dar didesnį tikslumą galima objektui suteikti Mesh Colliders (tinklelinius
Terabaitai
9
susidūrimo objektus) trijose dimensijose, o dviejose dimensijose – Polygon Collider 2D. Šie Collider
komponentai apkraus procesorių žymiai didesniu darbu.
Galima sujungti du Rigidbody objektus naudojant Joint (jungtį). Jų yra 2 rūšys: Hinge (ašinis)
leidžia objektams suktis aplink jungtį, o Spring išlaiko objektus atskirais bet leidžia tarp jų sukurti
nedidelį, slankiojantį atstumą. Jiems galima nustatyti jėgos ribą, kurią viršijus, jungtis trūks, arba
galima priversti objektus suktis aplink jungtį.
 Audio
Žaidimas negali būti be garso, nesvarbu, ar tai fono muzika ar garso effektai. „Unity“ audio
sistema yra lankti ir galinga. Ji gali atkurti daugelį standartinių audio formatų ir gali atkurti garsus
3D erdvėje tokius kaip aidas. „Unity“ taip pat gali įrašyti garsus. „Unity“ taip pat leidžia naudoti
trečios šalies įskiepius.
Norint skleisti iš objekto garsą, reikia prie objekto sukurti Audio Source (garso šaltinį). Tuomet
jo skleidžiami garsai yra įrašomi Audio Listener (garso imtuvo), kuris yra pritvirtintas prie kito
objekto. Tarp jų susidariusį atstumą gali panaudoti kuriant Doplerio efekto simuliaciją sustiprintam
realumo jausmui.
Terabaitai
10
4. Platformos ant kurių veikia Unity (Martynas Diedonis)
iOS Android, Windows Phone, BlackBerry, Windows, Windows Store Apps, Mac OS X,
Linux, PS 3, Xbox 360, Wii U, PS 4, Xbox One, Tizen, SamsungTV, PS Vita, Gear VR, Oculus
Rift, WebGL.
 Mono kūrimo platforma
Mono yra laisvai naudojama kūrimo platforma, kuri leidžia kurti cross-platform programas C#
kalba. Ji buvo sukurta .NET Framework pagrindu. Mono sudaro C# kompiliatorius, Mono Runtime,
ji implementuoja Common Language Infrastructure(CLI), pagrindines klasių bibliotekas(Base Class
Library), Mono Class Library tai sudaro Gtk+, zip failų, LDAP, OpenGL ir daug kitų klasių.
Mono yra labai populiarus, rasi be galo daug pamokų, knygų, tinklapių. Taip pat an Mono
kūrimo platforma automatiškai skirsto atmintį, paskirsto darbą per kelis procesorius.
 Grafikos, fizikos
Unity palaikančios grafikos aplikacijų programavimo sąsajos(API): OpenGL, OpenGL,
WebGL, Metal ir DirectX ir kiekviena iš jų yra skirta tam tikroms platformoms.
OpenGL yra pagrinde naudojama MacOS X ir kituose iOS prietaisuose, taip pat gali būti
naudojamas ir Linux, Windows platformoms.
OpenGL pagrinde skirtas mobiliesiems prietaisams, populiariausi būtų Android.
WebGL yra skirtas tinklapiams skirtų žaidimų kūrimui, kuris pašalina reikalavimą turėti Flash
ir Unity web player.
Metal yra naujas Apple grafinis API, tinkantis iOS prietaisams.
DirectX yra Microsoft kurtas grafinis API, kuris tinka Windows, Windows Phone ir Xbox.
Unity pastiki tik vieninteliu įrankiu, kuriant fizikas žaidimuose Nvidia PhysX, kuris palaiko
visas anksčiau išvardintas platformas.
 Nuo platformos priklausanti kompiliacija(Platform dependent compilation)
Unity variklis turi labai naudingą funkciją, kuri leidžia tam tikras kodo dalis leisti kompiliuoti
tik tam tikroms platformoms. Ši komanda gali veikti ant visų Unity palaikomų platformų. Dažnai
iškylantis klausimas yra: Ar parašytas kodas Platform dependent compilation kodas yra matomas
kitose platformose? Ne, bet priklauso nuo programavimo kalbos ar klasės egzistuos. Unityscript
sukurią tuščia klasę, o C# ne.
 Shaders
Unity taip pat sugeba sukūrtus šešėliuoklius naudoti ant kitų platformų, kur shader kalba
visiškai skiriasi. Yra 2 populiariausios shader kalbos: HLSL ir GLSL. HLSL yra pagrinde naudojama
su Direct3D, Xbox 360 ir Playstation 3. GLSL yra naudojama mobiliuosiuose įrenginuose(OpenGL
ES 2.0), Mac OSX(OpenGL) ir WebGL. Unity variklyje pagrinde yra naudojama HLSL kalba, Unity
sugeba konvertuoti HLSL į GLSL. Seniau šis būdas buvo labai neoptimizuotas, bet buvo sukurti
kompiliatoriai, kurie optimizuodavo konvertuotą GLSL kodą.
Terabaitai
11
5. Programavimas įvairiomis kalbomis (Liudas Butkus)
Norint panaduoti visas Unity variklio
galimybes būtina mokėti programuoti viena iš
palaikomų programavimo kalbų: C#, UnityScript
arba Boo.
Pagal populiarumą jos išsidėsčiusios štai
taip. Net 80,4% Unity vartotojų naudoja C#,
18,9% vartotojų naudoja UnityScript ir 0,44%
vartotojų naudoja Boo.
C# tai C kalbų grupės kalba plačiai
naudojama visame pasaulyje, todėl ji ir yra pati
populiariausia.
UnityScript tai JavaScript atmaina
pritaikyta darbui su Unity, JavaScript taipogi yra labai populiari programavimo kalba naudojama
internetinių puslapių kūrime, bet mano nuomone, kadangi Unity nenaudoja bendros JavaScript
kalbos, o naudoja jos atmainą UnityScript, tai ir jos populiarumas nėra labai didelis.
Boo tai programavimo kalba apie kuria jūs tikriausiai nieko nesate girdėję, tai atsispindi ir jos
populiarumo procente. Ji sintaksiškai yra panaši į geriau žinomą Python programavimo kalbą.
Dėl mažo Boo kalbos populiarumo Unity komanda nustojo kurti jai skirtą mokomąją medžiagą.
Taigi kurią programavimo kalbą pasirinkti? Jeigu jau esate programavę C kalbų grupės kalba
(C, C++,etc.) tai C# bus jums artimiausia. Jeigu esate susidūrę su puslapių kūrimu ir JavaScript
kodais, tai manau nebus sunku idėjus šiek tiek laiko išmokti UnityScript niaunsus. Na o jeigu
mėgstate iššūkius ir norite išmokti dar vieną programavimo kalbą tai mokykitės Boo.
Betkokiu atvėju jums bus prieinamos visos Unity variklio galimybės.
Terabaitai
12
6. Efektai
(Tomas Kučinskas)
Unity varikliukas atvaizduoja objektus jiems priskirdamas medžiagas(Material),
šešėliuokles(Shaders) ir tekstūras. Šios trys sąvokos yra glaudžiai susijusios.
Medžiagos tai yra objektai, kurie nurodo varikliukui, kaip objektas
turėtų būti piešiamas. Jame sudėtos modeliui priklausančios tekstūros,
spalvos ir kiti parametrai. Šių parinkčių skaičius priklauso nuo medžiagos
šešėliuoklės.
Šešėliuoklės tai mažos programos, kurios apdirba smulkius grafikos
elementųs pritaikydamos matematinius algoritmus. Šie kodai gali keisti modelio
taškų padėtį, ekrano pikselių spalvą, modelio primityvų(trikampių) padėtį,
pragerinti modelio detalumą ir t.t.
Tekstūros yra paveiksliukai, siunčiami į šešėliuoklę. Šie objektai gali
nuspalvoti objektą nemonotonišku užpildu, nurodyti ypatingas modelio
vietas(švytinčios, atspindžios vietos) arba gali būti panaudoti netradiciniais
būdais.
Unity varikliukas turi standartinių efektų biblioteką. Joje galima
rasti nuo paprastų efektų, skirtų modeliams atvaizduoti iki ekrano
efektų. Neradęs tinkamo efekto, programos kūrėjas gali parašyti savo
efektą. Šiam tikslui pasiekti naudojama speciali programavimo kalba
„ShaderLab“. Pragramuotojas gali rašyti viršūnių, pikselių,
geometrijos, paviršiaus ir skaičiavimų šešėliuokes.
Terabaitai
13
7. Greitis ir stabilumas
(Tomas Kučinskas)
Unity varikliuko pasižymi ypatingu
stabilumu. Programos veikimo metu rasti
klaidingi moduliai yra automatiškai išjungiami,
neegzistuojantys resursai nenaudojami, o pati
programa veikia toliau. Mūsų komandos
patirtis taip pat liudija apie varikliuko
atsparumą klaidoms ir nenumatytiems
atvejams.
Daugelio žaidimų kūrėjų nuomone,
Unity varikliukas nepasižymi spartumu.
Ypatingas nepasitenkinimas yra išreiškiamas
telefoninių žaidimų kūrėjų. Dažniausiai problemos kyla naudojant 3D grafikos komponentus. Vis dėl
to technologijos kūrėjai pripažįsta spartos problemas ankstesnėse versijose ir išleidžiant naują versiją,
didelis dėmesys yra skiriamas programos veikimo greičio spartinimui. Taip pat Unity 3D kūrėjai
pastebi, kad programuotojai naudoja blogas programavimo praktikas todėl varikliuko
dokumentacijoje galima rasti naudingų patarimų kaip pagreitinti programos spartą.
Terabaitai
14
8. Išvados
Terabaitai
15
Šaltiniai
http://docs.unity3d.com/Manual/Shaders.html
http://docs.unity3d.com/Manual/ShadersOverview.html
http://answers.unity3d.com/questions/920984/bad-performance-on-certain-android-devices.html
http://forum.unity3d.com/threads/very-poor-performance-on-android-after-upgrading-to-unity-
5.306572/
http://docs.unity3d.com/Manual/MobileOptimizationPracticalGuide.html
http://docs.unity3d.com/Manual/OptimizingGraphicsPerformance.html
Terabaitai
16
// Iliustracijų sąrašas
Terabaitai
17
// Terminų sąrašas

Weitere ähnliche Inhalte

Andere mochten auch

Loan Servicing resume 2016 (1)
Loan Servicing resume 2016 (1)Loan Servicing resume 2016 (1)
Loan Servicing resume 2016 (1)
Brenda Hapner
 

Andere mochten auch (10)

atul_resume
atul_resumeatul_resume
atul_resume
 
Co trabajo 1 et 2
Co trabajo 1 et 2Co trabajo 1 et 2
Co trabajo 1 et 2
 
New CV
New CVNew CV
New CV
 
Systra
SystraSystra
Systra
 
Efektai / Greitis ir stabilumas
Efektai / Greitis ir stabilumasEfektai / Greitis ir stabilumas
Efektai / Greitis ir stabilumas
 
Presentación sobre dificultades motoras
Presentación sobre dificultades motorasPresentación sobre dificultades motoras
Presentación sobre dificultades motoras
 
Loan Servicing resume 2016 (1)
Loan Servicing resume 2016 (1)Loan Servicing resume 2016 (1)
Loan Servicing resume 2016 (1)
 
Branding pentru ONG-uri
Branding pentru ONG-uriBranding pentru ONG-uri
Branding pentru ONG-uri
 
Velvet McKague Resume
Velvet McKague ResumeVelvet McKague Resume
Velvet McKague Resume
 
Grenada
GrenadaGrenada
Grenada
 

Ähnlich wie Unity (6)

PI_11paskaita
PI_11paskaitaPI_11paskaita
PI_11paskaita
 
P. Litvinas. OpenGeo Suite - atvira platforma jūsų sprendimams. GIS - paprast...
P. Litvinas. OpenGeo Suite - atvira platforma jūsų sprendimams. GIS - paprast...P. Litvinas. OpenGeo Suite - atvira platforma jūsų sprendimams. GIS - paprast...
P. Litvinas. OpenGeo Suite - atvira platforma jūsų sprendimams. GIS - paprast...
 
World Usability Day 2011
World Usability Day 2011World Usability Day 2011
World Usability Day 2011
 
įvedimas
įvedimasįvedimas
įvedimas
 
5 būdai dalintis verslo analitikos įžvalgomis
5 būdai dalintis verslo analitikos įžvalgomis5 būdai dalintis verslo analitikos įžvalgomis
5 būdai dalintis verslo analitikos įžvalgomis
 
2011.06.15 vaizdo konferencijos_ir_paskaitu_transliavimas
2011.06.15 vaizdo konferencijos_ir_paskaitu_transliavimas2011.06.15 vaizdo konferencijos_ir_paskaitu_transliavimas
2011.06.15 vaizdo konferencijos_ir_paskaitu_transliavimas
 

Mehr von Liudas Butkus

Pilietinis ir tautinis ugdymas skuodo pranciškaus žadeikio gimnazijoje
Pilietinis ir tautinis ugdymas skuodo pranciškaus žadeikio gimnazijojePilietinis ir tautinis ugdymas skuodo pranciškaus žadeikio gimnazijoje
Pilietinis ir tautinis ugdymas skuodo pranciškaus žadeikio gimnazijoje
Liudas Butkus
 

Mehr von Liudas Butkus (16)

Datum - Secure and Monetize Your Digital Life
Datum - Secure and Monetize Your Digital LifeDatum - Secure and Monetize Your Digital Life
Datum - Secure and Monetize Your Digital Life
 
Prezentacija
Prezentacija Prezentacija
Prezentacija
 
Unity Scriptingas įvairiomis kalbomis
Unity Scriptingas įvairiomis kalbomisUnity Scriptingas įvairiomis kalbomis
Unity Scriptingas įvairiomis kalbomis
 
Unity integruotos-sistemos
Unity integruotos-sistemosUnity integruotos-sistemos
Unity integruotos-sistemos
 
Pilietinis ir tautinis ugdymas skuodo pranciškaus žadeikio gimnazijoje
Pilietinis ir tautinis ugdymas skuodo pranciškaus žadeikio gimnazijojePilietinis ir tautinis ugdymas skuodo pranciškaus žadeikio gimnazijoje
Pilietinis ir tautinis ugdymas skuodo pranciškaus žadeikio gimnazijoje
 
6 Ways to Make People Open Your Emails
6 Ways to Make People Open Your Emails6 Ways to Make People Open Your Emails
6 Ways to Make People Open Your Emails
 
Animatics Create and Deliver Inexpensive Visual Marketing Messages
Animatics Create and Deliver Inexpensive Visual Marketing MessagesAnimatics Create and Deliver Inexpensive Visual Marketing Messages
Animatics Create and Deliver Inexpensive Visual Marketing Messages
 
4 Steps to Success for Video Marketing Virgins
4 Steps to Success for Video Marketing Virgins4 Steps to Success for Video Marketing Virgins
4 Steps to Success for Video Marketing Virgins
 
How To Effectively Use Facebook As A Marketing Tool
How To Effectively Use Facebook As A Marketing ToolHow To Effectively Use Facebook As A Marketing Tool
How To Effectively Use Facebook As A Marketing Tool
 
10 Steps To Success In Social Media Marketing For Your Business
10 Steps To Success In Social Media Marketing For Your Business10 Steps To Success In Social Media Marketing For Your Business
10 Steps To Success In Social Media Marketing For Your Business
 
Social Media Marketing Confusing You? Help Is Here!
Social Media Marketing Confusing You? Help Is Here!Social Media Marketing Confusing You? Help Is Here!
Social Media Marketing Confusing You? Help Is Here!
 
Business Insurance for Natural Disasters
Business Insurance for Natural DisastersBusiness Insurance for Natural Disasters
Business Insurance for Natural Disasters
 
Why Google Scares People
Why Google Scares PeopleWhy Google Scares People
Why Google Scares People
 
Business Writing - Choosing the Right Words
Business Writing - Choosing the Right WordsBusiness Writing - Choosing the Right Words
Business Writing - Choosing the Right Words
 
RFID Wristbands And Social Media Check-Ins - 3 New Trends
RFID Wristbands And Social Media Check-Ins - 3 New TrendsRFID Wristbands And Social Media Check-Ins - 3 New Trends
RFID Wristbands And Social Media Check-Ins - 3 New Trends
 
A Brief History of Modern Board Gaming
A Brief History of Modern Board GamingA Brief History of Modern Board Gaming
A Brief History of Modern Board Gaming
 

Unity

  • 1. KAUNO TECHNOLOGIJOS UNIVERSITETAS INFORMATIKOS FAKULTETAS DARBAS SU UNITY VARIKLIUKU, JO GALIMYBĖS Darbas Grupėje Darbą atliko: Martynas Diedonis, Simonas Penkinas, Tomas Kučinskas, Martynas Mitka, Liudas Butkus KAUNAS, 2015
  • 2. Terabaitai 2 Turinys 1. Įvadas.................................................................................................................................3 2. Vartotojo sąsaja (Martynas Mitka) ................................................................................4  Vartotojo supažindinimas su programa .........................................................................4  Minimalistinė, švari aplinka...........................................................................................5  Tinkamai ir trumpai pavadinti funkciniai mygtukai ......................................................5  Funkcijų / informacijos grupavimas ..............................................................................6  Valdymas turi būti intuityvus.........................................................................................6  Programa turi būti lengvai pasiekiama...........................................................................7  Pasiruošti vartotojų klaidoms.........................................................................................7  Sekti vartotojų apsiliepimus...........................................................................................7 3. Integruotos sistemos (Simonas Penkinas) .....................................................................8  Fizika..............................................................................................................................8  Audio..............................................................................................................................9 4. Platformos ant kurių veikia Unity (Martynas Diedonis).............................................10  Mono kūrimo platforma...............................................................................................10  Grafikos, fizikos...........................................................................................................10  Nuo platformos priklausanti kompiliacija(Platform dependent compilation) .............10  Shaders.........................................................................................................................10 5. Programavimas įvairiomis kalbomis (Liudas Butkus).................................................11 6. Efektai..............................................................................................................................12 7. Greitis ir stabilumas.........................................................................................................13 8. Išvados .............................................................................................................................14
  • 4. Terabaitai 4 2. Vartotojo sąsaja (Martynas Mitka ) Žaidimo kūrimo platformos pamatinis tikslas visada turėtų išlikti vienodas - supaprastinti ir pagreitinti kūrėjų darbą, bei užtikrinti gerą galutinio produkto veikimą. Dėl šios priežasties platformų kūrėjai nenorėdami prarasti konkurencingumo su kiekviena versija stengiasi optimizuoti savo produktus, pridėti papildomų funkcijų, bei žinoma tuo pačiu metu stengtis, kad visa tai vartotojui būtų pateiktą patogiai ir aiškiai. Nors dažniausia viešai išafišuojami pirmieji punktai susyja su platformos galimybėmis, tačiau būtent pastarasis ( vartotojo sąsajos ) aspektas lemia platformos sėkmę. Kad ir kokia puiki platforma bebūtų, niekas ja nesinaudos, jei tai daryti bus ypatingai sudėtinga. Šioje srityje labai sėkmingai dirba Unity komanda, su tokio pačio pavadinimo nemokama žaidimų kūrimų platforma. Vienas pagrindinių šios platformos pranašumu prieš kitas yra būtent sugebėjimas tinkamai pateikti produktą ir įrankius visiems suprantamu būdu ir taip supaprastinti kūrėjų darbą. Dažnai gera vartotoja sąsaja tampa tada, kai ne tik puikiai išpildoma viena ar kita rekomendacija, o tada, kai visa programa veikia dinamiškai, jos valdymas natūraliai įsilieją į darbą, tampa nepastebimas ir ji pati nesukelia papildomu sunkumų vartotojui. Šis tikslas gali būti pasiekiamas protingai įgyvendinat viešojoje erdvėje jau labai aiškiai suformuotus patrauklios vartotojo sąsajos, angliškai -„user interface“ (vėliau tiesiog UI) principus, pagal kuriuos ir nagrinėsiu Unity UI sistemą. Stengsiuosi panagrinėti kiekvieną aspektą atskirai ir savo pastebėjimais įvertinti ar šių principų laikomasi, galbūt Unity komanda sugalvojo dar profesionalesnių būtų juos realizuoti. Taigi štai šie principai, kuriais vadovaujantis pagal viešojoje erdvėje prieinamus šaltinius galima sukurti puikią UI sistemą:  Vartotojo supažindinimas su programa Šioje srityje Unity komanda atrodo bene stipriausia, neminint to, kad šį platformą turi milžinišką bendruomene, kuri noriai dalinasi savo patirtimi, jos kokybiška mokymo sistemą leidžia labai patogiai ir greitai susipažinti su žaidimo platforma. Pradedantiesiems skirta ypač daug dėmesio, jiems sukurta ištisa mokymo programa video formatu youtube svetainėje, kurioje pradedantysis yra
  • 5. Terabaitai 5 supažindinamas su pagrindinėmis funkcijomis, palaipsniui einama prie sudėtingesnių dalykų. Lygiagrečiai yra pateikiami baziniai modeliai, su kuriais Unity leidžia lengvai ir nemokamai eksperimentuoti vartotojams ir taip praktiniu būdu greičiau ir giliau įsisavinti informaciją. Norintiems gilintis į labiau specifinius dalykus yra pateikiamos nuorodos į šaltinius kuriuose jie gali gauti daugiau žinių. Vartotojas nuo pat pradžių neišsigąsta galybės aplink esančių įrankių, nes visada žino kur gali gauti papildomos informacijos. Vartotojo apmokymo srityje Unity kartelę iškėlusi tikrai aukštai, tokią gerą apmokymų sistemą pateikti sugeba tik vienetiniai produktai, todėl tai yra didelė UI sistemos pasisekimo priežastis  Minimalistinė, švari aplinka Kiekvienas darbo langas turi būti lengvai skaitomas ir neapkrautas papildomomis dėtelėmis, kurios smarkiai vargina ir blaško vartotoją. Todėl patartina visuose languose išlaikyti minimalistinį stilių. Kadangi Unity UI sistemoje esama didelis kiekis skirtingų pasirenkamųjų funkcijų, visiško minimalizmo tikėtis negalima. Tačiau nepasakyčiau, kad principas liko neišpildytas visai. Atsisakyta papildomų ornamentinių detalių, įrankių bei papildomų langų kombinacijas galima susidėlioti visiškai rankiniu būdu, pagal kiekvieno poreikius. Tai suteikia vartotojui galimybę susikurti būtent jam patogią aplinka, neapkraunant ekrano dėmesnį blaškančiais langais. Sveikintina ir tai, jog spalvų gama pagrindinėje temoje susideda iš kontrastingu ir blankesnių atspalvių, kas platformai ir suteikia lengvumo jausmą ir iš dalies kompensuoja tą triukšmą, kurį mūsų akims suteikia nemažas kiekis mygtukų.  Tinkamai ir trumpai pavadinti funkciniai mygtukai Vartotojo sąsajoje nemaža dalis informacijos perduodama ne tik vaizdais, bet ir tekstu. Todėl būtina atsižvelgti, kad kiekvienas mygtukas būtų pavadintas prasmingai ir visiems suprantamai. Kadangi dauguma komandų šioje platformoje yra gan standartiškos, tai kūrėjams nereikėjo ilgai kvaršinti sau galvos, o jei ir reikėjo tai jų darbas nenuėjo veltui. Dažnas vartotojas mestelėjęs akį į mygtuką iškart supranta kokia jo paskirtis, o jei ir iškylą klausimų, tai visada galima pritraukus savo pelytės žymekli prie mygtuko ir išvysti platesnį paaiškinimą su pavyzdžiais. Taigi Unity pasinaudodama standartinių kitų platformų pavydžių puikiai pritaikė šį principą savo platformoje.
  • 6. Terabaitai 6  Funkcijų / informacijos grupavimas Bet kokiam žmogui visą informacija įsisavinti daug lengviau, kai ji suskirstoma į tam tikras grupes, dažniausia pagal panašią ypatybę ar logine seką. Todėl, kad vartotojo sąsaja būtų efektyvi svarbu visas platformos funkcijas suskirstyti į tam tikrus blokus, kad vartotojui būtų kuo paprasčiau orientuotis ir naviguoti platformos viduje tarp skirtingų savo prasme funkcijų. Unity šioje srityje įgyvendino gan inovatorišką idėją ne tik visą informaciją tvarkingai ir pagal gan aiškias logines prasmes sugrupuoti blokais, langais, bet ir kurti atskirus tokių blogų modulius, kurie gali būti prijungti pasirinktinai pagal kūrėjo norus. Tai sutaupo daug laiko, kai kuriamos standartinės žaidimų scenos, nes pasirinkus visą modulį iš platformos patogioje vietoje atkeliami visi potencialiai vartotojui reikalingi įrankiai. Tarkim, kai dirbama su scenos fonu, galima vienu metu pasirinkti tekstūrą, ją apdoroti su vietoje esančiais įrankiais, pakeisti tekstūros atspalvį, matomumą. Žodžių visi potencialiai reikalingi įrankiai yra pateikiami viename funkcijų bloke, ir vartotojui nereikia ieškoti kiekvieno įrankio atskirai. Tai užtikrina patogų vartotojo darbą ir prideda didelį pliusą šiai žaidimų platformai.  Valdymas turi būti intuityvus Vartotojui daug patogiau dirbti su programa kuri yra panaši į kitas, jau egzistuojančias programas. Būtent dėl to dauguma šių laikų vartotojų sąsajos sistemų iš pirmo žvilgsnio yra tarpusavyje labai panašios. Ne išimtis ir Unity UI sistema, kuri turi standartinio („Tab“) stiliaus įrankių juostą. Naudotojui intuityviai bus aišku, kaip išsaugoti ar atsidaryti failą. Unity taip pat neblogai išvystė ir „drag and drop“ sistemą. Pradedant nuo tiesioginio modelio įkelimo į žaidimo kurimo scena, modelių transformacijų atlikimo iki darbo langų kilnojimo iš vienos pozicijos į kitą.
  • 7. Terabaitai 7  Programa turi būti lengvai pasiekiama Gan paprasta, bet svarbi detalė. Neatkreipus į tai dėmesio, galima gan skaudžiai nudegti. Kiek vartotojų kantybės galėtų atimti, tai jog kiekvieną kartą naudojantis programą reikėtų paspausti dešimt skirtingų mygtukų. Mes mėgstame paprastuma ir greituma, nors tai gal ir teužimtų kelias papildomas sekundes. Unity ėmesi gan gudrios strategijos šioje dalyje, tačiau naudojantis programa vis tiek pastebėtume šiek tiek nesklandumu šioje sirtyje. Pagrinde norint patekti į norimą projektą užtenka spustelti kelis kartus ir tu jau norimame žaidimi projekte, visas papildomos parinktys, jei tokių reikia jau galima rasti ieškant rankiniu būdu. Tačiau, kai atsiranda platformos atnaujinimai ar skelbiama reklaminio pobudžio informacija ši procedura gali šiek tiek suerzinti, nes atsiranda keli papildomi langai.  Pasiruošti vartotojų klaidoms Kartais visiems, o dažniausia naujokams pasitaiko atveju, kai netyčia ar iš nežinojimo pradanginame duomenis ar failus su kuriais dirbame. Tokios klaidoms išvengti kuriamos papildomos apsaugos sistemos. Viena paprasčiausiu, tai papildomas langas kuris aiškiai paklausia ar tikrai norime atlikti vienokius ar kitokius pakeitimus. Kas ypatinga Unity žaidimų platformoje, tai jog šie apribojimai apgalvoti labai gerai, išvengta daug vartotojo loginių klaidų, yra būdas viska perstatyti į „default“ reikšmes. Pavyzdžiui, jei vartotojas dirba su vieno tipo modeliais sistema neleis pritaikyti kito tipo savybių. Dar vienas didesnių pliusų, tai jog yra galimybė automatiškai saugoti projektus virtualiame projekte, taigi sumažėja duomenų praradimo rizika. Tačiau, kad ir kokie apribojimai galioje šioje platformoje, tai jokiu būdu nevaržo kūrėjo laisvės, tiesiog palengvina komunikavimą su platforma.  Sekti vartotojų apsiliepimus Svarbi tobulėjimo dalis yra pastovus trūkumų ieškojimas ir šalinimas. Tam pasitelkiami testuotojai, tačiau naudingiausi atsiliepimai būna ir pačių vartotojų. Būtent dėl šios priežasties Unity turi gerą klientų aptarnavimo ir atsiliepimų rinkimų sistemą, kuri glaudžiai susėjusi su žaidimo kūrimo platforma. Kiekvienas gali patogiai ir greit parašyti savo apsiliepimas, klaidų pastebėjimus ar nusiskendimus, kad platforma galėtų būti toliau tobulinama. Abipusė nauda visada gerai, todėl toks Unity strategijos kūrimas yra pagirtinas.
  • 8. Terabaitai 8 3. Integruotos sistemos (Simonas Penkinas)  Fizika Norint suteikti žaidimui didesnį realumo jausmą, objektas žaidime turi tinkamai įsibegėti, turi būti veikiamas susidūrimų, žemės traukos ir kitų jėgų. Programoje „Unity“ esantys fizikos varikliukai suteikia komponentus, kurie sukuria fizinę imitaciją. Įrašius kelis parametrus, sukuriamas pasyvus objektas, kuris elgiasi realistiškai – yra veikiamas susidūrimų ir kritimų, bet pats objektas spontaniškai nejuda. Redaguojant objekto parametrus, galima objektui suteikti dinamiką, panašią į automobilio arba net judančios šluostės. „Unity“ egzistuoja du fizikos varikliukai. Vienas yra trijų dimensijų fizikai, o kitas – dviejų. Pagrindinė idėja yra ta pati, tik jie įgyvendinami su skirtingom detalėm. Pavyzdžiui, „Unity“ yra įtaisytas Rigidbody (standusis komponentas) ir Rigidbody 2D. Rigidbody (angl. standusis komponentas) yra pagrindinė detalė, kuri suteikia fizinį funkcionavimą objektui. Sukurtas standusis objektas iš karto paklus gravitacjos jėgai. Jeigu yra vienas ar daugiau Collider (susidūrimo komponentų) tada standusis objektas bus veikiamas susidūrimų. Rigidbody yra judinamas dviejų dimensijų fizikos varikliuko. Tai yra daroma veikiant objektą kokia nors jėga, kuri verčia patį objektą pasisukti ar pakeisti poziciją. Rigidbody turi savybę, kuri leidžia objektui pereiti į „miego“ būseną, kai jis juda mažesniu nei nustatytu minimaliu linijiniu ar sukamuoju greičiu. Tada varikliukas supras, kad objektas nejuda. Kitą kartą objektas pajudės, kai jį paveiks susidūrimas ar jėga. „Miego“ būsenoje esančiam objektui bus skirta mažiau procesoriaus darbo iki tol, kol objektas bus „pažadintas“. Collider (angl. susidūrimo komponentai) nusako objekto formą dėl fizinio susidūrimo tikslų. Žaidime šis komponentas nebūtinai turi būti tos pačios formos kaip ir pats objektas. Net atvirkščiai – suapvalinimas yra efektyvesnis žaidimo metu. Paprasčiausi (ir mažiausiai procesoriaus darbo reikalaujantys) Collider komponentai vadinami primityviaisiais. Trijose dimensijose jie yra: Box (dėžės), Sphere (sferos), Capsule (kapsulės). Dviejose dimensijose yra naudojami: Box 2D ir Circle (apskritimo). Į objektą galima jų įdėti neribotą skaičių, norint sukurti sudėtinius susidūrimo komponentus. Kruopščiai dėliojant Collider galima gan gerai sukurti objekto formą ir neapkrauti procesoriaus darbo. Tačiau, norint gauti dar didesnį tikslumą galima objektui suteikti Mesh Colliders (tinklelinius
  • 9. Terabaitai 9 susidūrimo objektus) trijose dimensijose, o dviejose dimensijose – Polygon Collider 2D. Šie Collider komponentai apkraus procesorių žymiai didesniu darbu. Galima sujungti du Rigidbody objektus naudojant Joint (jungtį). Jų yra 2 rūšys: Hinge (ašinis) leidžia objektams suktis aplink jungtį, o Spring išlaiko objektus atskirais bet leidžia tarp jų sukurti nedidelį, slankiojantį atstumą. Jiems galima nustatyti jėgos ribą, kurią viršijus, jungtis trūks, arba galima priversti objektus suktis aplink jungtį.  Audio Žaidimas negali būti be garso, nesvarbu, ar tai fono muzika ar garso effektai. „Unity“ audio sistema yra lankti ir galinga. Ji gali atkurti daugelį standartinių audio formatų ir gali atkurti garsus 3D erdvėje tokius kaip aidas. „Unity“ taip pat gali įrašyti garsus. „Unity“ taip pat leidžia naudoti trečios šalies įskiepius. Norint skleisti iš objekto garsą, reikia prie objekto sukurti Audio Source (garso šaltinį). Tuomet jo skleidžiami garsai yra įrašomi Audio Listener (garso imtuvo), kuris yra pritvirtintas prie kito objekto. Tarp jų susidariusį atstumą gali panaudoti kuriant Doplerio efekto simuliaciją sustiprintam realumo jausmui.
  • 10. Terabaitai 10 4. Platformos ant kurių veikia Unity (Martynas Diedonis) iOS Android, Windows Phone, BlackBerry, Windows, Windows Store Apps, Mac OS X, Linux, PS 3, Xbox 360, Wii U, PS 4, Xbox One, Tizen, SamsungTV, PS Vita, Gear VR, Oculus Rift, WebGL.  Mono kūrimo platforma Mono yra laisvai naudojama kūrimo platforma, kuri leidžia kurti cross-platform programas C# kalba. Ji buvo sukurta .NET Framework pagrindu. Mono sudaro C# kompiliatorius, Mono Runtime, ji implementuoja Common Language Infrastructure(CLI), pagrindines klasių bibliotekas(Base Class Library), Mono Class Library tai sudaro Gtk+, zip failų, LDAP, OpenGL ir daug kitų klasių. Mono yra labai populiarus, rasi be galo daug pamokų, knygų, tinklapių. Taip pat an Mono kūrimo platforma automatiškai skirsto atmintį, paskirsto darbą per kelis procesorius.  Grafikos, fizikos Unity palaikančios grafikos aplikacijų programavimo sąsajos(API): OpenGL, OpenGL, WebGL, Metal ir DirectX ir kiekviena iš jų yra skirta tam tikroms platformoms. OpenGL yra pagrinde naudojama MacOS X ir kituose iOS prietaisuose, taip pat gali būti naudojamas ir Linux, Windows platformoms. OpenGL pagrinde skirtas mobiliesiems prietaisams, populiariausi būtų Android. WebGL yra skirtas tinklapiams skirtų žaidimų kūrimui, kuris pašalina reikalavimą turėti Flash ir Unity web player. Metal yra naujas Apple grafinis API, tinkantis iOS prietaisams. DirectX yra Microsoft kurtas grafinis API, kuris tinka Windows, Windows Phone ir Xbox. Unity pastiki tik vieninteliu įrankiu, kuriant fizikas žaidimuose Nvidia PhysX, kuris palaiko visas anksčiau išvardintas platformas.  Nuo platformos priklausanti kompiliacija(Platform dependent compilation) Unity variklis turi labai naudingą funkciją, kuri leidžia tam tikras kodo dalis leisti kompiliuoti tik tam tikroms platformoms. Ši komanda gali veikti ant visų Unity palaikomų platformų. Dažnai iškylantis klausimas yra: Ar parašytas kodas Platform dependent compilation kodas yra matomas kitose platformose? Ne, bet priklauso nuo programavimo kalbos ar klasės egzistuos. Unityscript sukurią tuščia klasę, o C# ne.  Shaders Unity taip pat sugeba sukūrtus šešėliuoklius naudoti ant kitų platformų, kur shader kalba visiškai skiriasi. Yra 2 populiariausios shader kalbos: HLSL ir GLSL. HLSL yra pagrinde naudojama su Direct3D, Xbox 360 ir Playstation 3. GLSL yra naudojama mobiliuosiuose įrenginuose(OpenGL ES 2.0), Mac OSX(OpenGL) ir WebGL. Unity variklyje pagrinde yra naudojama HLSL kalba, Unity sugeba konvertuoti HLSL į GLSL. Seniau šis būdas buvo labai neoptimizuotas, bet buvo sukurti kompiliatoriai, kurie optimizuodavo konvertuotą GLSL kodą.
  • 11. Terabaitai 11 5. Programavimas įvairiomis kalbomis (Liudas Butkus) Norint panaduoti visas Unity variklio galimybes būtina mokėti programuoti viena iš palaikomų programavimo kalbų: C#, UnityScript arba Boo. Pagal populiarumą jos išsidėsčiusios štai taip. Net 80,4% Unity vartotojų naudoja C#, 18,9% vartotojų naudoja UnityScript ir 0,44% vartotojų naudoja Boo. C# tai C kalbų grupės kalba plačiai naudojama visame pasaulyje, todėl ji ir yra pati populiariausia. UnityScript tai JavaScript atmaina pritaikyta darbui su Unity, JavaScript taipogi yra labai populiari programavimo kalba naudojama internetinių puslapių kūrime, bet mano nuomone, kadangi Unity nenaudoja bendros JavaScript kalbos, o naudoja jos atmainą UnityScript, tai ir jos populiarumas nėra labai didelis. Boo tai programavimo kalba apie kuria jūs tikriausiai nieko nesate girdėję, tai atsispindi ir jos populiarumo procente. Ji sintaksiškai yra panaši į geriau žinomą Python programavimo kalbą. Dėl mažo Boo kalbos populiarumo Unity komanda nustojo kurti jai skirtą mokomąją medžiagą. Taigi kurią programavimo kalbą pasirinkti? Jeigu jau esate programavę C kalbų grupės kalba (C, C++,etc.) tai C# bus jums artimiausia. Jeigu esate susidūrę su puslapių kūrimu ir JavaScript kodais, tai manau nebus sunku idėjus šiek tiek laiko išmokti UnityScript niaunsus. Na o jeigu mėgstate iššūkius ir norite išmokti dar vieną programavimo kalbą tai mokykitės Boo. Betkokiu atvėju jums bus prieinamos visos Unity variklio galimybės.
  • 12. Terabaitai 12 6. Efektai (Tomas Kučinskas) Unity varikliukas atvaizduoja objektus jiems priskirdamas medžiagas(Material), šešėliuokles(Shaders) ir tekstūras. Šios trys sąvokos yra glaudžiai susijusios. Medžiagos tai yra objektai, kurie nurodo varikliukui, kaip objektas turėtų būti piešiamas. Jame sudėtos modeliui priklausančios tekstūros, spalvos ir kiti parametrai. Šių parinkčių skaičius priklauso nuo medžiagos šešėliuoklės. Šešėliuoklės tai mažos programos, kurios apdirba smulkius grafikos elementųs pritaikydamos matematinius algoritmus. Šie kodai gali keisti modelio taškų padėtį, ekrano pikselių spalvą, modelio primityvų(trikampių) padėtį, pragerinti modelio detalumą ir t.t. Tekstūros yra paveiksliukai, siunčiami į šešėliuoklę. Šie objektai gali nuspalvoti objektą nemonotonišku užpildu, nurodyti ypatingas modelio vietas(švytinčios, atspindžios vietos) arba gali būti panaudoti netradiciniais būdais. Unity varikliukas turi standartinių efektų biblioteką. Joje galima rasti nuo paprastų efektų, skirtų modeliams atvaizduoti iki ekrano efektų. Neradęs tinkamo efekto, programos kūrėjas gali parašyti savo efektą. Šiam tikslui pasiekti naudojama speciali programavimo kalba „ShaderLab“. Pragramuotojas gali rašyti viršūnių, pikselių, geometrijos, paviršiaus ir skaičiavimų šešėliuokes.
  • 13. Terabaitai 13 7. Greitis ir stabilumas (Tomas Kučinskas) Unity varikliuko pasižymi ypatingu stabilumu. Programos veikimo metu rasti klaidingi moduliai yra automatiškai išjungiami, neegzistuojantys resursai nenaudojami, o pati programa veikia toliau. Mūsų komandos patirtis taip pat liudija apie varikliuko atsparumą klaidoms ir nenumatytiems atvejams. Daugelio žaidimų kūrėjų nuomone, Unity varikliukas nepasižymi spartumu. Ypatingas nepasitenkinimas yra išreiškiamas telefoninių žaidimų kūrėjų. Dažniausiai problemos kyla naudojant 3D grafikos komponentus. Vis dėl to technologijos kūrėjai pripažįsta spartos problemas ankstesnėse versijose ir išleidžiant naują versiją, didelis dėmesys yra skiriamas programos veikimo greičio spartinimui. Taip pat Unity 3D kūrėjai pastebi, kad programuotojai naudoja blogas programavimo praktikas todėl varikliuko dokumentacijoje galima rasti naudingų patarimų kaip pagreitinti programos spartą.