Почему решение выкинуть Unity погубит Ubuntu

В следующих разделах рассказано о том, как решать и предотвращать проблемы в редакторе Unity в различных ситуациях. В общем случае, убедитесь, что ваш компьютер соответствует всем системным требованиям , что он не устаревший и в системе у вас имеются все необходимые пользовательские разрешения. Также не забывайте регулярно делать резервные копии ваших проектов, ради их же безопасности.

Версии

Вы можете установить разные версии редактора в разные каталоги. Тем не менее, убедитесь что вы делаете резервные копии проектов, т.к. они могут обновиться до более новых версий, и вы не сможете открыть их в более старых версиях Unity. Для дальнейшей информации см. установка нескольких версий .

Лицензии дополнений подходят только для версий Unity c такой же основной версией, например 3.х и 4.х. Если вы обновите Unity внутри основной версии, например с 4.0 до 4.1, то дополнения останутся.

Активация

Интернет активация - предпочитаемый метод генерирования вашей лицензии Unity. Но если у вас возникают проблемы, следуйте следующим шагам:

  1. Отключите ваш компьютер от сети, иначе у вы можете получить ошибку “tx_id_invalid”.
  2. Выберите пункт Manual Activation.
  3. Нажмите на Save License Request.
  4. Выберите доступную папку для сохранения, например папку Downloads.
  5. Заново подключитесь к сети и откройте https://license.unity3d.com/
  6. В поле файла нажмите Browse и выберите сохранённый licence request file.
  7. Выберите необходимый тип лицензии для Unity и заполните запрашиваемую информацию.
  8. Нажмите Download License и сохраните файл.
  9. Вернитесь в Unity и выберите Manual Activation если придётся.
  10. Кликните на Read License и выберите загруженный файл лицензии.

Если у вас всё ещё есть проблемы с регистрацией или входом в ваш аккаунт пользователя, пожалуйста, свяжитесь с нами по адресу [email protected] .

Не удаётся запустить

Если при запуске Unity сразу же падает, то в первую очередь убедитесь, что ваш компьютер соответствует минимальным системным требованиям . И не забудьте обновить аудио драйвера и драйвера видеокарты.

Если вы получаете ошибки, связанные с записью на локальный диск, то проверьте разрешения вашей учётной записи. При использовании MacOS, учтите, что “root user” не рекомендуется и Unity ещё не прошёл тестирование в этом режиме. Unity всегда должен обладать разрешениями на запись файлов в своих папках, но если вы устанавливаете разрешения вручную, то проверьте эти папки:

  • Папку с установленным Unity
  • %AllUsersProfile%\Unity (обычно C:\ProgramData\Unity)
  • C:\Documents and Settings\<имяпользователя>\Local Settings\Application Data\Unity
  • C:\Users\<имяпользователя>\AppData\Local\Unity
  • Содержимое пакета Unity.app
  • /Library/Application Support/Unity
  • ~/Library/Logs/Unity

Некоторые пользователи испытывали затруднения, когда использовали жёсткие диски, форматированные с не нативными разделами и использовали определённые программы для переноса данных между устройствами хранения.

Шрифты

Повреждённые шрифты могут вызвать падение Unity. Вы можете найти повреждённые файлы при помощи следующих шагов:

  1. Откройте каталог с шрифтами на вашем компьютере, расположенный в папке “Windows”.
  2. Выберите “Details” (Таблица) в меню “View” (Вид).
  3. Проверьте пункт “Size (Размер)” на наличие шрифтов с размером “0”, указывающий на проблемный файл.

    Запустите приложение Font Book.

    Выберите все шрифты.

    Откройте меню “File” (Файл) и выберите “Valiadte Fonts” (Проверить шрифты). Проблемные шрифты будут помечены как нерабочие.

    Удалите повреждённые файлы и переустановите их.

    Ресурсы системы могут быть ограничены, например, при работе в виртуальной машине. Используйте Диспетчер задач, чтобы найти процессы потребляющие много памяти.

Испорченный проект или установка Unity

Unity может попытаться открыть повреждённый проект, это также касается и стандартного тестового проекта. В таком случае переименуйте или переместите папку проекта. После того, как Unity нормально запустится, вы можете вернуть папку проекта в исходное состояние, если захотите.

В случае повреждения копии Unity, вам может понадобится переустановить Unity - смотрите инструкции ниже.

В Windows могут возникнуть проблемы, вроде ошибок при установке, повреждения регистра, конфликты и т.д. Например, ошибка 0xC0000005 означает, что программа попыталась получить доступ к той памяти, к которой не должна. Если вы недавно устанавливали новое оборудование или драйвера, то попробуйте извлечь и заменить оборудование, чтобы узнать, не из-за него ли появляется проблема. Используйте программы для диагностики и проверьте информацию в центре помощи операционной системы.

Производительность и падения

Если редактор работает медленно или падает, в частности на стадии сборки, это может происходить из-за того, что все доступные системные ресурсы уже используются. Закройте все другие приложения при сборке проекта. Почистите систему используя специализированные утилиты и сверьтесь с диспетчером задач (Windows) или Activity Monitor (MacOS), чтобы проверить, нет ли в системе процессов, использующих очень много ресурсов, например, памяти. Иногда антивирусы могут замедлять или даже блокировать файловую систему в процессе сканирования.

Утрата проекта

Есть много различных факторов, способных уничтожить проект. Вам следует постоянно делать резервные копии ваших проектов для предотвращения несчастных случаев. В MacOS, активируйте TimeMachine используя внешний жёсткий диск, используемый только для этой цели. После утери вы можете попробовать использовать какую-нибудь утилиту для восстановления файлов, но иногда файлы оказываются невосстановимыми.

Переустановка

Следуйте этим шагам для переустановки редактора:

    Удалите Unity. Если вы используете MacOS, перетащите приложение Unity в корзину.

    Удалите следующие файлы, если они есть:

    • Windows:
  1. %AllUsersProfile%\Unity\ (обычно C:\ProgramData\Unity)

    • MacOS:
      • /Library/Application Support/Unity/
  2. Перезагрузите компьютер.

    Скачайте последнюю версию с нашего сайта, т.к. возможно ваш установщик может быть повреждён: http://unity3d.com/unity/download/archive

    Переустановите Unity.

30 декабря 2016 в 07:43
  • Unity ,
  • Разработка игр

Геймдев - занятие по настоящему увлекательное, особенно когда в команде есть как опытные программисты, так и новички. В отличии от таких движков как Unreal и CryEngine, в Unity достаточно низкий порог вхождения, и зачастую ветераны.NET и новички начинают выяснять отношения, которые заканчиваются дракой с применением офисной мебели.

В этой статье я попытался собрать советы которые помогут вам и вашей команде договориться наконец о том, как надо писать код, и, надеюсь, хорошо посмеяться. И так, поехали!

1. Пиши на UnityScript

Один язык в проекте - это скучно. Разнообразь жизнь своих коллег, пусть учаться быть полиглотами. C# - это майкрософт, и вообще строгая типизация это не твое.

2. Не используй var

Сами Unity запрещают это делать, да и вообще непонятно, какого типа переменная. Когда тебе скажут про подсказки IntelliSense - закатывай глаза, майкрософт головного мозга! Твой Notepad++ этого не умеет.

3. Смешивай стили

Ну а что? Сами Unity нарушают C# Style Guide и фигачат camelCase в пропертях, чем ты хуже? Если используешь MonoDevelop, не забывай периодически менять табы на пробелы и обратно. При этом говори всем, что в MonoDevelop «настройки слетели» - про этот баг все знают!

4. Не пиши XML Doc комментарии

Они засоряют файл, а твой код должен быть понятен без дополнительных комментариев. И вообще, твой Notepad++ не поддреживает это всё. Если меняешь сигнатуру чужого метода, не обновляй XML Doc - так чтение автодокументации будет веселее.

5. Не используй namespace

Писать using - слишком муторно, и вообще зачем это делать, если можно обойтись без этого. Все скрипты должны лежать в папке Script - так их проще находить по алфавиту.

6. Связывай компоненты

Чем больше связей - тем лучше! Каждый компонент должен ссылаться на каждый другой компонент - зато так проще! У твоего персонажа должна быть ссылка на противника, дверь, гейм менеджер, ХП бар на канвасе, на любые другие объекты на сцене. А иначе как с этим работать?

7. Создавая референсы, прячь их через private GameObject myGameObject;

Так твой референс можно будет отредактировать только через редактор, а в коде они мешаться не будут. Когда окажется, что что-то надо все-таки поменять через код, просто переделай private на public.

8. Не используй паттерны проектирования, кроме singleton

Когда тебе говорят про Dependency Injection или другие паттерны, закатывай глаза. Какие нафиг паттерны, тут тебе не энтерпрайз!

9. GameObject.SendMessage - потрясающе удобный инструмент, используй его как можно чаще

По возможности собирай название метода из нескольких строк - так твоим коллегам будет веселее искать, откуда вызвался метод!

10. Используй UnityEvent везде, где это возможно

Стандартные event"ы - это для лохов, тем более они не отображаются в инспекторе. Unity не зря придумали свои ивенты.

Выставляй все через инспектор. Раздели свой код на части и выстави 5 разных методов при нажатии на кнопку - так будет веселее искать, по нажатию какой кнопки этот метод вызывается!

11. Подписываясь на событие через AddListener, забывай прописать RemoveListener

Нет ничего веселее, чем дебажить и искать, почему код срабатывает несколько раз одновременно. Особенно когда это происходит не постоянно.

12. Кэшируй все компоненты на GameObject"ах

Даже если вы их не используете или используете один раз при нажатии на кнопку. Оптимизировать надо начинать как можно раньше! Не забывайте закэшировать transform; те, кто говорят, что transform уже закэширован - лжецы.

13. Не используй свойства

Свойства - это медленно, как вызов метода, а доступ к полю гораздо быстрее. Все преимущества свойств - выдуманы. Когда тебе кто-то начнет говорить про private set, обратную совместимость и необходимость рекомпиляции assembly в случае изменения поля на свойство, смотри на них как на дураков - какая еще компиляция, у нас геймдев а не энтерпрайз, мы тут dll не используем! И вообще, когда ты последний раз менял поле на свойство?

14. Не используй foreach

Ну, про это уже не раз говорили. Сами Unity запрещают использование foreach. Найдя foreach в коде коллеги, замени его на for и прочитай 10 минутную лекцию о том, что foreach создает мусор, для убедительности покажи свой бенчмарк, где ты обходишь список каждый кадр.

15. Не используй Linq

Linq - это медленно, сложно, и вообще это майкрософт. For на 10 строк - это гораздо красивее (foreach мы же не используем - забыл?). Если кто-то посмеет написать Query Expressions, то смотри на него как на идиота - майэскюЭль с Юнити перепутал!

16. Не используй строки

Строка - это выделение памяти, которую потом будет собирать GC. Используй char - не зря же ты в универе сишку проходил. Никакой юникод тебе не нужен - нечего лишние байты гонять, все равно у тебя bitmap шрифты.

17. Не используй Generics

Дженерики - это медленно и сложно, а Generic Constraints - еще сложнее. Какая нафиг ковариантность и контравариантность? У нас Юнити, тут этого нет! Когда нужны классы с разным типом, храните имя класса в переменной и находите его с помощью Type.GetType().

18. Не используй Coroutines без надобности

Они не работают на неактивных объектах, и вообще, создают дополнительную нагрузку. Храни состояние в булевых переменных, и проверяй их в Update - так гораздо удобнее, ведь все собрано в одном месте.

19. Как только выходит новая версия движка, ставь ее и закоммить папку ProjectSettings

Пусть твои коллеги учаться держать обновленный инструментарий. Ну и что, что проект сдавать через 2 дня, а новая версия с багами? Не твоя это проблема, что Unity не могут зарелизить нормально! Зато там есть новая система частиц, с которой тебе хочется поиграться.

20. Не используй текстовую сериализацию ассетов

Она тормозит редактор. Бинарная сериализация - это гораздо быстрее. Когда кто-то скажет про merge, закати глаза - он что, дурак, сцену мержить? Когда смержить нужно будет тебе, просто откати чужие изменения. Надо было говорить, над каким ассетом работаешь, что бы другие не трогали!

Вместо Unity будет GNOME Shell. 6 лет Шаттлворт экспериментировал на пользователях и наконец-то оболочка И тут Шаттлворт решает выкинуть Unity на помойку. ¯\_(ツ)_/¯

Эксперты уверены, что сомнительное решение негативно скажется на популярности Ubuntu. А она, если верить Distrowatch, скатывается в никуда уже который месяц. Правда, если взглянуть на другой рейтинг - - то окажется, что дистрибутив Ubuntu как был самым популярным, так и остается и будет оставаться еще долго, ибо достойных конкурентов как не было, так и не предвидится.

Так какие же есть основания у экспертов говорить о том, что Ubuntu ждут тяжелые времена из-за похорон Unity?

Панель запуска в Unity

Она на грани совершенства. Круче только в Mac OS. Панель запуска красивая, аккуратная и гибкая в настройке. Даже без дополнительных инструментов ее легко настроить под себя, а с помощью стороннего инструмента Unity Tweak Tool можно вообще творить чудеса.

Быстрые списки Unity

Другая ултраполезная фича - быстрые списки. Каждая иконка на панели запуска имеет контекст, который можно вызвать правой кнопкой мыши и тем самым сэкономить немало времени. Например, можно в два клика сменить проигрываемый трек или отмонтировать флешку. Освоив быстрые списки юзер сам становится очень быстрым. Любое задание выполняется практические моментально.

Unity HUD (Heads-up Display)

Сомнительная фича, но многим нравилась. Некоторым полюбилась настолько, что расставание будет довольно мучительным. Если кто-то не в курсе, HUD позволял быстро добраться до нужного пункта в меню просто набирая первые буквы его названия. В сложных многоуровневых меню HUD действительно значительно упрощал и ускорял навигацию.

Горячие клавиши

Многие из них использовались для управления Launcher, Dash и HUD, еще более ускоряя работу и повышая производительность труда на компьютере. 6 лет ушло на запоминания хоткеев, а куда теперь деть эти знания?

Выводы

О преимуществах Unity можно говорить бесконечно. Столько лет ушло на привыкание, столько лет потребовалось на освоение хитроумных клавиатурных комбинаций! А как долго мы боролись за то, чтобы из Unity удалили слежку И добились-таки! И вот Шаттлворт встает не с той ноги и одним росчерком пера лишает нас полюбившейся оболочки, которая общими усилиями стала почти идеальной. И ради чего? Что, GNOME Shell - предел мечтаний линуксоидов?

Конечно, Unity - это Open Source. В любом случае, разработка будет продолжена и GNOME Shell можно будет заменить на Unity своими силами. Не исключено, что появятся дистрибутивы, где Unity будет использоваться из коробки по умолчанию. Но сможет ли Unity так же успешно своеобразно развиваться без Шаттлворта? И сможет ли дистрибутив Ubuntu, от которого оторвали кусок, сохранять целостность, высокий уровень usability и

Я видел много истерии вокруг Unity (десктоп окружения, а не графического движка). Многие люди предпочитают Убунте, скажем, Linux Mint, именно потому что там MATE. Или выбирают сборки Ubuntu с GNOME/Xfce, объясняя это только тем, что не хотят использовать Unity. Сам я пользуюсь Unity на протяжении последних пяти месяцев и нахожу ее просто прекрасной DE.

Поначалу, само собой разумеется, было немного непривычно. Кое-какие вещи пришлось донастроить. Например, я сделал так, чтобы боковая панелька скрывалась, убрал отображение заголовков окон из верхней панели, настроил фильтры быстрого поиска, увеличил количество рабочих столов, и вроде еще какие-то мелочи , уже точно не помню. В результате все стало точно так же, как, скажем, в Xfce. Двигаешь окошки мышкой, сворачиваешь, разворачиваешь, между окнами переключаешься по Alt+Tab.

Ну разве что вместо кнопки «Пуск» — панелька с наиболее часто используемыми приложениями. А те приложения, что используются редко, можно быстро найти по имени. На самом деле, это намного удобнее традиционного древовидного меню в стиле Windows XP.

Потом пришло понимание, что в Unity есть много хоткеев. Подсказку по основным хоткеям можно посмотреть, нажав и подержав какое-то время клавишу Win. Перемещение окон, запуск приложений, переключение между приложениями и окнами, изменение размеров окон и так далее — в Unity все это можно сделать при помощи хоткеев. Если учесть наличие хоткеев у Google Chrome, Gnome Terminal, bash и IntelliJ IDEA , то мышки можно вообще не касаться.

Вообще, Unity — это такой хитро замаскированный тайловый оконный менеджер. Если пользователь привык все делать мышкой, он все будет делать мышкой, как и привык. Те же, кто долго пользовался Awesome, или Xmonad , оценят возможность делать все при помощи клавиатуры, а также эффективное использование места на экране.

А еще Unity представляет собой попытку сделать один оконный менеджер для десктопа, планшетов, телевизоров и мобильных телефонов. Попытка эта, как по мне, вполне удачная. На YouTube вы без труда найдете множество роликов, которые наглядно демонстрируют эту идею .

Плюс ко всему этому, поскольку Unity является DE по умолчанию для Ubuntu, с ним все сразу хорошо из коробки, а что не хорошо, можно один раз настроить и забыть. Для сравнения, когда я пользовался i3, мне приходилось руками настраивать переключение раскладки, запуск Dropbox, Network Manager и так далее. Флешки приходилось монтировать либо руками, либо специально запускать pcmanfm. После обновлений постоянно что-то отваливалось. И это я еще не вспоминаю о проблемах с отображением Gimp/Skype или работу с несколькими мониторами. А в Unity все работает, притом предоставляются такие же возможности. Удобно!

Я еще могу понять людей, у которых пятилетнее железо, и поэтому им хочется чего-то легкого, типа того же i3 или Xfce. Ну или людей, которые уже сидят там под Mint, Fedora или SuSe. А так, не вижу причин не любить Unity. Может быть, просто я чего-то упускаю?

Достаточно популярна. Если ранее компьютерные игры были лишь развлечением для узкого круга любителей, то сейчас данная область выходит на абсолютно новый уровень. Все больше людей увлекаются компьютерными играми, постоянно выходят проекты, которые подходят для определенных возрастов и целевых групп (например, семейные игры).

Естественно, за этим кто-то стоит - в большинстве случаев это целая компания, состоящая из нескольких отделений, каждое из которых занимается своей собственной деятельностью. Совместными усилиями они творят наиболее выдающиеся и привлекательные компьютерные игры современности. Однако стоит отметить, что в последнее время появилось большое количество инди-игр - проектов от независимых разработчиков. Это может быть и один человек, и небольшая группа единомышленников, но самое главное - у них нет огромного бюджета, сотен рабочих рук с высшим узкоспециализированным образованием. И сейчас каждый может написать свою собственную игру, ведь существуют как специальные рабочие среды, так и готовые ядра, например игровой движок Unity. В данной статье вы узнаете, что он собой представляет и зачем он нужен.

Ядро игры

Начать стоит не с того, что представляет собой конкретно игровой движок Unity, а с того, чем является движок в принципе. Представьте себе написание компьютерной игры - вам необходимо с нуля прописать абсолютно весь код, абсолютно все мельчайшие движения персонажей, перемещения противников, взаимодействия с окружающей средой и еще тысячи различных деталей. Невероятно сложно, не так ли? Значительно облегчить вам процесс создания может как раз движок.

Это ядро проекта, которое содержит все базовые скрипты. То есть вместо того чтобы создавать игру с нуля, вы можете взять уже готовое ядро и нарастить на него сколько угодно слоев своего контента. Не стоит опасаться того, что это нечто нелегальное - вы не крадете ядро, а просто используете его, как делают миллионы других. Использование игровых движков, созданных другими - это очень распространенная техника, только самые крупные компании имеют средства и возможности, чтобы создавать свой собственный игровой движок больших масштабов. Если же у вас на это нет бюджета - лучше использовать игровой движок Unity. Но почему именно он?

Почему Unity?

Существует огромное количество разнообразных движков, которые доступны в сети либо частично бесплатно, либо полностью платно. Они позволят вам создавать проекты как в 2D, так и в 3D, откроют вам доступ к различным возможностям и так далее. Но почему же среди них вам стоит выбрать именно игровой движок Unity, а не какой-либо другой?

На самом деле никто не принуждает вас делать подобный выбор - например, имеется очень хорошее ядро UDK, которое также многие используют для создания игр в 3D. Если вас не интересует трехмерное изображение, вы вполне можете сотворить двухмерный проект с соответствующим движком. Но Unity - это самый популярный и качественный трехмерный движок из всех имеющихся сегодня, поэтому вам определенно стоит задуматься о том, чтобы использовать именно его. Игровой движок Unity 3D имеет ряд серьезных преимуществ над другими, о которых речь пойдет далее.

Преимущества Unity

Unity - новый движок для создания 3D игр. Многие задаются вопросом о том, почему нужно выбрать именно его. Как уже было сказано ранее, вас никто не заставляет останавливать свой выбор именно на нем. Однако сейчас вы узнаете, чем же он так выделяется на фоне остальных.

Во-первых, это среда разработки - вам предоставляется крайне удобная и функциональная IDE, которая содержит в себе одновременно и редактор сцен, и редактор объектов, и даже небольшой редактор скриптов. Касательно последнего - этот плюс особенно заметен на фоне остальных, так как в большинстве движков уже имеется собственный скриптовый язык, которым вам в любом случае приходится пользоваться. В случае с Unity вы можете воспользоваться как местным языком, так и любым другим.

Отдельно стоит упомянуть уровень графики, которую можно создать в игре - он довольно высок в сравнении с большинством других движков. Ну и, конечно же, стоит отметить высочайший уровень физики - вы сможете создать проект не хуже любого современного шедевра, естественно, при должном умении.

В завершение стоит сказать про стоимость - именно она становится для многих начинающих разработчиков. В данном случае она не слишком высока - всего полторы тысячи долларов. При желании вы можете воспользоваться бесплатной версией - она полностью функциональна, но не имеет определенного количества полезных функций. Также готовый проект постоянно будет отображать эмблему Unity в процессе игры. Теперь вы понимаете, почему Unity 3D - популярный игровой движок. Но неужели у него нет минусов? Сейчас и об этом поговорим.

Минусы Unity

Многие пытались найти недостатки у этого движка, но с трудом жалоб накопилось лишь на одну - закрытость исходного кода. В каком-то смысле это действительно минусы - вы можете пользоваться только тем ядром, которое вам предлагает разработчик, не можете в него вносить никакие изменения, даже если вы знаете, как это сделать. И даже с учетом того, что вы заплатили полторы тысячи долларов - лицензия все равно не дает вам доступа в само ядро. Но если смотреть с другой стороны, то практически ни один современный движок не дает вам доступ к коду ядра, так что данный минус можно считать серьезным недостатком с большой натяжкой. А других недочетов у этого прекрасного движка найти не удается.

Использование Unity

Про использование данного движка уже было сказано ранее - IDE для него просто прекрасная. Редко можно встретить такую функциональную среду разработки, которая не будет перегружена лишними деталями, не будет абсолютно голой и неудобной. В Unity все сделано просто прекрасно - вы сразу же можете получить доступ и к редактору сцен игры, и к игровым объектам, и даже к скриптам, к ним применяемым. Вы можете прямо в IDE просмотреть в реальном времени отрывок того, над чем вы работали. В этом у Unity попросту нет конкурентов - данный движок великолепен.

Русский Unity

Если вы не знаете английского языка, можете не волноваться, вы все равно сможете воспользоваться Unity. Игровой движок на русском существует и активно поддерживается, так что вы сможете без труда творить игровые шедевры в переводной версии. Более того, существует огромное русскоязычное интернет-сообщество, посвященное данному движку - там вы сможете узнать последние новости, почитать мнение опытных пользователей и задать интересующие вас вопросы. Unity3D по-русски - это вполне возможно.

Добавление скриптов

Выше уже было сказано, что изменять код ядра у вас не получится. Но при этом вы можете добавлять свои собственные скрипты, а также загружать те, которые были созданы другими пользователями.