Всем привет! Меня зовут Григорий Дядиченко, и я всё ещё разрабатываю проекты на юнити под ключ. Сегодня хочется поговорить про полезный инструментарий для Unity разработчика. У меня давно на эту тему есть свой топ ассетов или софта, которые используются почти в каждом проекте, плюс несколько своих утилит. Не будем касаться слишком широких и банальных инструментов типа adb, а составим некоторый набор того, что можно использовать почти в каждом проекте.
В разработке я около 7 лет, большую из которых провёл в инди или аутсорс/фрилансе. Поэтому речь пойдёт про инструменты “для себя”, а не про CI&CD пайплайн, или что неплохо было бы знать и докер с кубером. Это действительно крутые и полезные инструменты (хотя не основная экспертиза юнити разработчика от слова совсем), но речь по инструменты для ускорения/удобства “домашней” разработки коммерческих проектов. Чтож начнём.
Graphy
Как и написано в описании. Ультимативный FPS каунтер. Очень удобен для дебага на устройствах и тестирования перфоманса. Простой в интеграции - просто закинуть префаб, но при этом отображает всё и даже больше. Фпс, память, график производительности, а также информацию об устройстве вроде OS, объеме оперативной памяти, поддерживаемом графическом апи, уровне шейдеров и т.п. Это, пожалуй тот ассет, который используется практически в каждом проекте.
https://github.com/Tayx94/graphy
Lunar Unity Mobile Console
Даже на фри версии, очень удобный ассет, особенно на IOS. Позволяет смотреть, по сути, Unity лог на устройстве. Используется реже, так как в большей части нужно для тестеров, которым неудобно использовать логи adb, хотя на IOS читать логи в консоли менее удобно, чем в лунаре. Но основное удобство в про версии - это кнопки и переменные, которые из неё можно включать для тестирования, начисления себе игровой валюты и многого другого. Конечно, такое пишется не особо долго, но зачем изобретать велосипед, когда есть что-то готовое?
https://github.com/SpaceMadness/lunar-unity-console
Desmos Calculator
Для разработки ряда алгоритмов и шейдеров очень удобно иметь под рукой графический калькулятор. Иногда может быть полезно графически посмотреть, как будет вести себя та или иная функция, чтобы добиться нужного эффекта. Для примера уравнение волны с угасанием амплитуды, чтобы правильно подобрать коэффициенты. Desmos в этом плане очень удобен. Он в разы легковеснее и не перегружен интерфейсом, как вольфрам. При этом отлично справляется со своей задачей
https://www.desmos.com/calculator?lang=ru
NGINX
Каждый разработчик должен хоть немного знать, что такое nginx и как им пользоваться. Или хотя бы его аналогами. Просто, потому что он позволяет разворачивать тестовые среды для огромного спектра задач в несколько команд в консоли. Я не говорю о том, что юнити разработчику нужно знать, как он конфигурируется и прям глубоко его изучать. Вредно не будет, но это больше к бекенду. Но иметь его в коробочке инструментов, чтобы тестировать скачивание ресурсов приложения, бек на статических конфигах и т. п. очень удобно. В разы удобнее, чем писать свой HTTP-сервер.
Simple Build Server
Моя личная небольшая утилита для пересылки файлов или билдов на тестовые устройства или же другие ПК в локальной сети. В основном я пользуюсь ей на андроиде, так как adb установка не скажу, что сильно удобнее, но что важнее с телефонами xiaomi нельзя устанавливать билды через adb, если в телефоне не стоит сим карта. Которая мне абсолютно не нужна. В отличии от того же autoindex nginx данный сервер mobile friendly. Потому что в стандартном autoindex nginx слишком маленькие кнопки. Для файлов конечно можно использовать shared folder или ftp, но в целом стандартный веб интерфейс для меня получился в разы удобнее и проще в конфигурации.
https://github.com/Nox7atra/SimpleBuildsServer
Odin - Inspector and Serializer
Единственный целиком платный плагин в подборке, но он того стоит. Превращает инспектор в юнити в ультимативное средство. Сортировка массивов, кнопки для тестирования и многое другое. По сути мастхев плагин в каждом проекте для меня, так как с ним работа ускоряется в разы. Помимо этого удобная система сериализации.
https://assetstore.unity.com/packages/tools/utilities/odin-inspector-and-serializer-89041
KinoGlitch
Я бы в целом советовал всем подписаться на keijiro. У него в репозиториях полезных инструментов, но пожалуй этот набор шейдеров я люблю больше всего. Красивые и крутые глитчи, которые могут пригодиться вам в проекте.
https://github.com/keijiro/KinoGlitch
JL’s Unity Blend Modes
Удобный набор шейдеров, которые позволяют использовать в юнити блендмоды из Photoshop. Тоже очень полезный репозиторий, так как при сборке многих эффектов полезно иметь их под рукой. Потому что при создании сложного эффекта, его часто можно имитировать эффектами из фотошопа. Особенно полезным в репозитории является PhotoshopBlendModes.cginc. Так как сами по себе отдельные шейдеры не так полезны.
https://github.com/penandlim/JL-s-Unity-Blend-Modes
В целом думаю, что это не все полезные инструменты, но это мой личный топ. Если у вас есть какие-то инструменты, которые вы тоже часто используете, и они не вошли в подборку - напишите о них в комментариях. Спасибо за внимание!
moroz69off
А как же blender? Вообще ни разу для Unity не инструмент?
Кстати, про графический редактор функций — в блендере кривые анимаций можно редактировать вот прямо руками (ну, и пайтоном тоже).
Я думал, что у каждого юнити-мена есть блендер… А оно вона...
DyadichenkoGA Автор
Blender не относится к экспертизе разработчика. Его можно знать, и чем больше знаешь — тем лучше вообще. Но это 3д моделлерский софт для 3д моделлеров. И в классическом продакшене юнити разработчики не обязаны уметь им пользоваться в целом. Так же как и фотошопом, иллюстратором, фигмой, скетчем и т.п. Или из 3д софта майей с максом)
Это не инструмент для разработки) Хотя иногда править нормали за моделлерами быстрее самому)
Suvitruf
Тогда что тут делает NGINX? )
ardraeiss
И "если NGINX есть — то почему нет git?".
moroz69off
Вот да.
Без гита жысь не та.
DyadichenkoGA Автор
Гит — это продолжение руки, не воспринимается как нечто о чём нужно говорить.
DyadichenkoGA Автор
Так как NGINX — это по сути готовый упрощённый бекенд не требующий особых навыков. Я не говорю про правильную конфигурацию на прод сервер. В статье речь о хотя бы «запустить на конфигурации по умолчанию». Так же можно запустить тот же апач или IIS.
Просто хотя бы для задачи. В игре есть иконки, иконки не хочется хранить в билде или в бандлах, так как их очень много и они часто меняются. Нужен SpriteLodader, который будет уметь грузить её по урлу, а во время загрузки отображать в интерфейсе загрузку.
Собственно чтобы не просить бекендеров завести тебе нужные файлы и бек такой и т.п. Можно в одну строку в командной строке развернуть инстанс nginx, закинуть файлы, да протестить.
Блендер же это инструмент, который требует навыков сложнее одной консольной команды, чтобы хотя бы им уметь делать базовые вещи.