*Басқа мағыналар үшін Unity деген бетті қараңыз.*

**Unity** — Windows және OS X операциялық жүйелерінде жұмыс жасайтын американдық Unity Technologies әзірлеген кросс-платформалық екі- және үш өлшемді ойын мен қосымшаларды дамыту құралы. Unity көмегімен жасалған қосымшалар Windows, OS X, Windows Phone, Android, Apple iOS, Linux операциялық жүйелерінде, Wii, PlayStation 3, PlayStation 4, Xbox 360, Xbox One приставкаларында жұмыс істейді. Unity 2005 жылы алғаш шығарылғаннан бастап үздіксіз дамып келеді.

Бұрын Adobe Flash Player модулінің аясында тәжірибелік  нұсқасы болған, кейінірек Unity дамытушы тобы  одан бас тарту туралы қиын шешімге келді.

Мүмкіндіктер
------------

Ойынды оңай түзету үшін Unity редакторында көптеген терезеден тұратын және оңай өңделетін Drag&Drop интерфейсі бар. Скрипт жазу үшін қозғалтқышта C# бағдарламалау тілі қолданылады. Түрлі физика есептеулерін физикалық NVIDIA қозғалтқышындағы PhysX атқарады. 

Unity қозғалтқышында жоба сахналарға бөлінеді - әр сахнада жеке ойын объектілері, сценарийлер мен параметрлерін қамтитын бөлек файлдар бар. Сахна ойын объектілерінен (модель) де, моделі жоқ объектілерден де тұруы мүмкін. Скриптпен әрекеттесу үшін ойын объектілері компоненттер жиынтығынан тұрады. Әр нысанның өз атауы (екі немесе одан да көп объектілерді бір атпен атауға болады), белгісі болады және нысан қай қабатта тұратыны беріледі. Transform компоненті нысанның орналасу, өлшем және айналу координаталарын сақтайды. Модельді көрінетін ету үшін Mesh Renderer компонентін қолданады.

Объектілердің қақтығысуын көрсету үшін collider қолданылады және оның бірнеше түрі бар.

Unity қатты денелер мен Ragdoll физикасын сақтайды. Редакторда бастапқы модель орын ауыстырса, өлшемін өзгертсе не айналса, еншілес модель де сол өзгерістерді қайталайды. Редакторда скрипт объектілерге бөлек компонент ретінде бекітіледі.

Текстураны Unity-ге импорттау кезінде түрлі карталар жасауға болады, бірақ текстура тікелей модельге қосыла алмайды - ол үшін шейдер тағайындалған материал жасалып, сол материалды модельге бекітеді. Қозғалтқыш редакторы шейдерлерді жазуды және өңдеуді қолдайды. Unity редакторында анимация жасауға арналған компонент бар, алайда анимацияны алдын-ала 3D редакторда жасап, модельмен бірге импорттауға болады.

3D Unity қозғалтқышы Level of Detail жүйесін қолдайды, оның мәні ойыншыға жақын орналасқан модельдер егжей-тегжейлі көрінеді де, алшақ тұрған модельдердің бөлшектері шамалы көрінеді. Сонымен қатар Occlusion culling жүйесінің арқасында ойыншының көру аймағына түспейтін объектілердің геометриясы мен соқтығысулары көрінбейді. Бұл жүйе орталық процессорға түсетін күшті азайтады және жобаны оңтайландыруға мүмкіндік береді. Жоба жасалғаннан кейін Windows үшін (.exe) файлы жасалады, ал ойын туралы мәлімет бөлек қалтада жасалады. 

Қозғалтқыш көптеген танымал форматтарды қолдайды. Ойын модельдерін, дыбыстар, текстуралар, материалдар мен сценарийлер .unitypackage форматында оралып, басқа әзірлеушілерге берілуі мүмкін немесе еркін қолжетімділікке орналастырылуы мүмкін. Осы формат Unity Asset Store дүкенінде қолданылады: мұнда әзірлеушілер ойындарды жасау үшін қажет материалдармен тегін не қаржылай бөліседі. Unity Asset Store онлайн дүкенін пайдалану үшін Unity қозғалтқышында жеке кабинеті болуы қажет. Қозғалтқышта бірнеше адам бірігіп ойнай алатын режим жасау үшін қажет барлық компоненттер бар. Сонымен қатар тұтынушыға қолайлы нұсқаны басқару үшін **Tortoise SVN, Git** немесе **Source Gear** сияқты құралдарды пайдалануға болады. 

Unity Asset Server - бірігіп ойын жасауда нұсқаны басқаруды және бірқатар серверлік шешімдерді қамтамасыз ететін қосымша құрал.

Артықшылығы
-----------

Unity-дің үш артықшылығы бар: визуалды өңдеу ортасы, кросс-платформалық қолдау және Unity компоненттерінің модульдік жүйесі. Бірінші факторға визуалды модельдеу құралдары ғана емес, сонымен қатар интеграцияланған орта, құрастырушы тізбегі кіреді. Ол прототиптеу және тестілеу кезеңдерінде өнімділікті арттыруға бағытталған. Кросс-платформалық қолдау тек орналастыру ғана емес (дербес компьютерде, мобильді құрылғыда, консольда және т.б. орнату), сонымен қатар өңдеу құралдарының болуын қамтамасыз етеді (Windows және OS X жүйелерінде интеграцияланған ортаны пайдалануға болады). Unity компоненттерінің модульдік жүйесі көмегімен ойын объектілері функционалды элементтердің біріктірілген пакеттерінен тұрса ғана құрылады. Қозғалтқышта объектілер функционалды блоктарды біріктіру арқасында жасалады. Бұл тәсіл прототиптеуді жеңілдетеді.

Кемшілігі
---------

Біріншіден, көп компонентті диаграммалар мен сызбалармен жұмыс істеу кезінде визуалды редактордың шектеулігі күрделі көріністерде визуалды жұмыстың нашарлауына әкеліп соғады. Екіншіден, сыртқы кітапханаларға сілтеменің болмауы топтық жұмысты тежейді, себебі программистер оны өздігінен реттейді. Тағы бір кемшілік даналардың үлгісін қолданумен байланысты (ағылшынша prefabs). Бір жағынан бұл тұжырымдама объектілерді визуалды өңдеуге икемді тәсіл ұсынады, ал екінші жағынан мұндай шаблондарды өңдеу қиынға соғады. Сондай-ақ, қозғалтқыштың WebGL нұсқасы өзінің архитектурасының ерекшеліктеріне байланысты (кодты C# бағдарламалау тілінен С++ дейін және одан әрі JavaScript-ке аудару) өнімділік, жадыны тұтыну және мобильді құрылғылардағы өнімділік бойынша бірқатар шешілмеген мәселелерге ие..

Unity қозғалтқышындағы ойындар
------------------------------

Unity қозғалтқышында жүзден астам ойындар мен қосымшалар жазылған. Қозғалтқыш инди ойындарды құруда да, Blizzard Entertainment сияқты ірі ойын әзірлеушілермен де қолданылады. Unity қозғалтқышындағы ойындар көптеген платформалар мен жанрларды қамтиды, мысалы:

* Guns of Icarus Online, Gone Home - дербес компьютерлерге арналған бірінші жақтан шутер мен квест инди ойындары;
* Dead Trigger, Bad Piggies, Tyrant Unleashed - мобильді құрылғыларға арналған бірінші жақтан шутер, ойжұмбақ және коллекциялық карта ойыны;
* Assault Android Cactus, The Golf Club - ойын консоліне арналған аркадалық шутер және спорт симуляторы.

Дереккөздер
-----------

1. ↑  Хокинг, 2016, p. 16
2. ↑  Unity ресми сайтындағы GNU/Linux-ты қолдау туралы ресми ақпарат  (ағыл.) (28 August 2012). Басты дереккөзінен мұрағатталған 21 қараша 2012.
3. ↑  *Dean Takahashi* Unity Technologies developers will be able to publish 3D games via Adobe Flash  (ағыл.).  VentureBeat (21 December 2011). Басты дереккөзінен мұрағатталған 9 маусым 2012. Тексерілді, 11 наурыз 2012.
4. ↑  *David Helgason* Sunsetting Flash  (ағыл.).  The Unity Blog (23 April 2013).
5. ↑  Хокинг, 2016, p. 21
6. ↑  Хокинг, 2016, p. 22
7. 1 2  Хокинг, 2016, p. 23
8. ↑  Memory Considerations when targeting WebGL.
9. ↑  Verge3D versus Unity WebGL - Pipeline and Performance.
10. ↑  Хокинг, 2016, p. 24—26
11. ↑  Even Hearthstone runs on Unity — and that’s why it’s already on iPad.
12. ↑  Хокинг, 2016, p. 25-

Әдебиеттер
----------

* *Джозеф Хокинг* Unity — в действии. Мультиплатформенная разработка на C#. — 2. —  Питер, 2019. — 336 б. — ISBN 978-5-4461-0816-9.

Сыртқы сілтемелер
-----------------

* Ресми сайты
* Unity on Facebook
* Үлгі:Youtube.com
* Unity *Twitter* сайтында