Прочитав этот горячий вопрос о Unity, UDK и ID, мне любопытно узнать: каковы неоднократные, наиболее вредные ограничения Unity?
Для того, чтобы этот вопрос не был субъективным, опять же, я говорю о самых распространенных преступниках в Unity. Это то, о чем вы, как пользователь Unity, действительно хотели бы, чтобы кто-то рассказал вам, прежде чем вы начали его использовать.
Я слышал от кого-то, что Unity плохо справляется с управлением версиями, поскольку генерирует много двоичных файлов (которые невозможно передать). Для меня это не очень вредно, так как я работаю один.
Мысли?
Ответы:
Позвольте мне предвосхитить это, что ребята из Unity были очень хороши в том, чтобы услышать основные проблемы, с которыми сталкивается их сообщество, и в конечном итоге нашли обещание улучшить положение вещей. Есть также много проблем, которые возникают только на определенных платформах или являются вопросом личных предпочтений или конкретных проблем игры, над которой вы работаете.
Что, как говорится:
1) Плохая интеграция управления исходным кодом и инструменты большой команды. Как вы упомянули, много недифференцируемых двоичных файлов. Редактор игнорирует флаг только для чтения для файлов сцены. Фактические файлы, которые вы должны проверить, не сразу очевидны. Часть этого исправлена в 3.5 с интеграцией SVN и P4. Есть также обещания текстовых форматов сцены. ОБНОВЛЕНИЕ: текстовый формат сцены теперь доступен в Pro-версии Unity. Смотрите здесь .
2) Медленные, ориентированные на программиста инструменты пользовательского интерфейса. У каждого виджета есть свой собственный вызов отрисовки, который накладывает большие затраты на мобильные платформы. Не существует таких концепций, как панели с анимацией и все другие причудливые вещи, которые заставляют пользовательский интерфейс чувствовать себя хорошо, не катаясь самостоятельно. На дорожной карте обещана новая система пользовательского интерфейса (3.6?). Есть некоторые сторонние инструменты, но они не очень хороши.
3) Действительно элементарное редактирование частиц. Тем не менее, они обещают новую систему на основе кривой в 3.5. ОБНОВЛЕНИЕ: Эта система на основе кривой, называемая Shuriken, теперь доступна. Смотрите здесь .
4) Вы не можете вкладывать сборные конструкции. Небольшая проблема, но когда вы привыкли работать с готовой системой и всей мощью, которую она вам предоставляет, это может расстроить вас. Это было обещано, но без конкретной даты. ОБНОВЛЕНИЕ: Теперь вы можете вкладывать сборные.
5) Практически невозможно получить игру для iOS под предельным уровнем. Один двоичный файл походит на 8 мегабайт в лучшем случае. Это не легко исправить.
6) Нулевые ссылки исключают платформы, которые не допускают JIT-скомпилированный код. В автономных или веб-версиях NRE ловятся. Это все еще неперехваченное исключение, но, по крайней мере, приложение будет продолжать работать. На iOS вылетает устройство. Вы можете перевести его в режим отладки и перехватить некоторые типы исключений, но производительность страдает.
7) При работе над многоплатформенной игрой, когда вы меняете цели сборки, вы должны заново импортировать все, что занимает много времени. Я работал над этим, фактически просто имея несколько копий проекта на диске. По-видимому, в 3.5 будет импортирован сервер активов.
источник
Когда я и мой друг оценили Unity для более крупного проекта, мы обнаружили, что одной из самых больших проблем была производительность с их программной оболочкой. Если я правильно помню, у нас было что-то вроде 10 анимированных объектов с примерно 1000 вертами каждый, и я получал 20 кадров в секунду при использовании среднего компьютера ... Не очень хорошо ...
источник
Моей проблемой номер один был повторный контроль версий. Решение? Просто используйте DropBox для проектов Unity. При условии, что вы настроили его правильно (то есть заплатили за услугу «PackRat»), он сохраняет историю изменений. Кроме того, намного проще сотрудничать с дизайнерами, так как они не хотят знать о традиционном контроле версий, DropBox предлагает им прозрачное решение. Недостатком является то, что разветвления / слияния не поддерживаются так, как они есть, например. мерзавец, свн.
Для тех, кто сомневается ...
Смотрите здесь для прочной ссылки с форумов Unity.
Кроме этого, единственное, что меня раздражает в Unity, это то, что у него нет точки входа в приложение так, как это делает C (main ()) или AS3 (класс документа). Но вы просто помещаете свою инициализацию приложения в пустой GameObject, не так уж и сложно. Поток кода немного отличается от этой внутренней структуры, но, опять же, нет ничего слишком сложного, чтобы справиться с ним.
Что касается лицензии, большинство людей не осознают (и я особенно имею в виду мелкие инди-операции и любителей, у которых может не быть денег, чтобы заплатить за профессиональную лицензию и надстройку менеджера активов), что вы можете делать практически все, что могли когда-нибудь хочу с основной / бесплатной версией. На самом деле, это не какой-то огромный барьер, команда Unity была очень щедрой.
источник
Я подумал о другом серьезном ограничении, которое раздражает меня ежедневно, поэтому я опубликую это отдельно.
Unity3D хочет, чтобы вы редактировали свои скрипты в MonoDevelop, в частности, в старой версии MonoDevelop, которую они распространяют. Функциональность «Поиск в файлах» в этой версии нарушена, поскольку ее использование обычно приводит к зависанию среды IDE, что делает ее бесполезной.
Это будет большим раздражением для любого движка, но для Unity это серьезное раздражение, потому что оно поощряет очень децентрализованную систему отдельных компонентов, действующих на различные игровые объекты. Но как вы можете узнать, какие компоненты имеют доступ к каким свойствам, если вы не можете даже выполнить поиск по различным компонентам?
РЕДАКТИРОВАТЬ: Этот ответ был опубликован в 2011 году: к счастью, ошибка поиска в файлах была исправлена некоторое время назад. И, как говорят комментаторы, вы можете редактировать свой код в других редакторах (хотя ваш выбор ограничен, если вы хотите иметь возможность работать в отладчике).
источник
Для меня самое серьезное ограничение в лицензионном соглашении:
«Ограничения на азартные игры Вы не можете распространять или публиковать Контент Лицензиата в связи с азартными играми без отдельной лицензии от Unity».
Это означает, что, начиная с версии 4.0, вы не можете использовать Unity для игр, в которых участвуют деньги / шанс, если только вы или ваши клиенты не готовы платить дополнительную лицензионную плату, которая оговаривается в каждом конкретном случае. Т.е. они видят, сколько вы стоите, и соответственно облагают вас налогом, причем 6 цифр указаны.
Больше всего беспокоит тот, кто знает, что они добавят в лицензионное соглашение v5. Возможно, все социальные игры? Возможно, все многопользовательские игры?
Любой разработчик, использующий Unity, рискует быть выкупленным в будущем выпуске.
источник
Хороший вопрос. Для меня самая большая проблема - это графический интерфейс. Я не возражаю против того, чтобы быть ориентированным на программиста, но я действительно возражаю против ужасного способа, которым объекты GUI являются функциями, а не объектом, и что обработка GUI заключена в одном вызове функции, который используется для рендеринга и обработки событий, и что нет никакой интеграции с системой ввода (то есть клики на элементах GUI могут интерпретироваться как клики в мире) и т. д.
Вторичной проблемой является отсутствие адекватной поддержки контроля версий (в основном потому, что система использует макет каталога в качестве макета проекта, что приводит к путанице в VCS при перемещении или переименовании объектов), но это можно обойти и не является проблемой для все.
источник