ПРОГРАММИРОВАНИЕ ПОД IPHONE, IPAD OBJECTIVE-C часть 3

27. Unity3D

Размышления о Unity3D

Недавно я начал изучать Unity3D, до этого немного кодил в Xcode. Поделюсь впечатлениями, надеюсь кому нибудь пригодится…
Unity3D поддерживает три языка C#, JavaScript и Boo. Если решите браться за Unity рекомендую учить C# или JavaScript, лучше C#. C#очень похож на Objective-C, они настолько похожи что по мере изучения C# я больше стал понимать Objective-C, к тому же уроков по C#полно, есть хорошие видео-уроки на русском от автора Александр Гудок, найти в сети их не проблема. Кроме того освоив C# перед вами откроются дополнительные возможности.

Написав игру в Unity3D вы сможете портировать ее под все основные платформы. Для этого не надо переписывать код, достаточно в настройках публикации выбрать нужную платформу и нажать Switch Platform, Unity сам все сделает, исходники при этом не затрагиваются.

Web — Unity3D использует свой собственный web плеер который быстро скачивается и не требует перезапуска браузера
iOS — Unity3D умеет компилировать универсальные приложения под iPhon, iPad

По сути, Unity3D является простеньким 3D пакетом с возможностью делать в нем 3D игры. Но на самом деле в нем нет никаких ограничений для создания 2D игр. Вот пара уроков на эту тему:

 

То есть, главное что нужно сделать это переключить камеру из режима Perspective в режим Orthographic

 

Хотя можно и этого не делать, например если вы хотите добавить в игру разного рода 3D эффекты связанные с перспективой.

Еще в Unity3D есть ассеты (Asset). Это что-то типа плагинов к Unity, которые состоят из готовых библиотек предназначенных для упрощения процесса создания игр. Ассеты очень сильно помогают разработчикам, особенно начинающим. Существует множество разных ассетов платных и бесплатных предназначенных для самых разных целей. Все ассеты можно найти в магазине Asset Store. Магазин запускается из меню Window>Asset Store в самой Unity3D.
Вот некоторые полезные ассеты:

 

 

Можно еще долго продолжать но думаю пока хватит, идея ясна.

Готовые игры можно посмотреть здесь, их можно сортировать по платформам и жанрам.
Глюков в программе мало и если с чем и сталкивался то они незначительны, может потому что пока ничего серъезного не делал. СамUnity3D довольно активно развивается, имеет довольно хороший мануал, и оживленный форум. Даже Electronic Arts заключила контракт с Unity Technologies на многолетнее использование движка для любых игр, которые могут выпускать ЕА.

Есть у Unity3D конечно и недостатки, отмечу то с чем я столкнулся. Самое неприятное для меня это то что мне сложно разобраться в финальных исходниках (а нужно ли?) которые Unity3D компилирует для Xcode. И я боюсь если в апсторе попросят чего нить поправить мне это будет непосилам. Хотя возможно при проверке они учитывают что проект сделан в Unity3D.
Второй недостаток, если вы намерены запустить игру на устройстве необходимо сперва скомпилировать проект под Xcode и только затем из проекта запускать на самом устройстве, на это уходит раз в пять больше времени. Но есть и оборотная сторона медали, если тестировать игру прямо в Unity3D запускается она очень быстро и можно даже вносить изменения в public переменные наблюдая за изменениями в реалтайме.
Третий недостаток, если вы хотите получить полный функционал от Unity3D вам придется выложить 1500$ за сам Unity3D и еще 1500$ за iOS pro. Можно конечно использовать бесплатный Unity и урезанный iOS за 400$, но при этом нельзя будет даже назначить свою собственную стартовую картинку появляющуюся при запуске игры. На мой взгляд это критичный момент.

 

Четвертый недостаток, если вы намерены сделать полноценную игру для апстора, несмотря на то что Unity3D очень сильно упрощает создание игр, без учебы здесь тоже не обойтись. Даже если вы уже владеете C# на то чтобы разобраться со встроенными библиотеками нужно какое-то время, и уроков на русском языке по этой теме крайне мало. А на форумах часто любят посылать читать мануал ) мое мнение банить за такое надо, ведь форумы для того и сделаны чтоб спрашивать и делиться инфрмацией, а про мануалы и так все знают.
Пятый. Если работать под Windows то в качестве среды разработки можно использовать VisualStudio и это удобный хороший инструмент для написания кода, но в Mac дело немного хуже, тут приходится использовать MonoDevelop, а он не так удобенный как Xcode илиVisualStudio и вдобавок более глючный. Собственно из-за глюков он и становиться гораздо менее удобным. Главный глюк в том чтоMonoDevelop не всегда корректно работает автозаполнение. Хотя у некоторых он вроде работает нормально.

Comments are closed.