[Из песочницы] Как включить тёмную тему редактора Unity
Приветствую, решился написать об одной наболевшей проблеме, которая затрагивает многих начинающих юнитиводов с ограниченным бюджетом, да и не только. Больше шести лет уже люди просят тёмную тему редактора Unity сделать бесплатной, но как мы видим, воз и ныне там.
Существует много вариантов решения этого вопроса самостоятельно, а предложенный здесь способ хорош тем, что не требует никакого сомнительного ПО, которому бывает опасно доверять. Также отмечу, что тут пример для Unity на Windows, особо пытливые могут провернуть аналогичный трюк на macOS или GNU/Linux. Итак, для того чтобы исправить это недоразумение своими силами, нам понадобится:
- Open-source отладчик x64dbg
- Подопытный Unity (64-битная версия 5.x или выше)
- Плюс немножко терпения и желание разобраться
Подготовка
Предполагается, что Unity уже установлен. Иначе зачем любопытный %UserName% читает эту статью? Обычно исполняемый файл редактора 64-битной версии Unity располагается по пути:
"C:\Program Files\Unity\Editor\Unity.exe"
Будем использовать этот путь для примера, поэтому скорректируйте под свою ситуацию в случае отличия. Настоятельно рекомендую сделать резервную копию! Чтобы потом не терять время на переустановку или поиск оригинального файла если пойдёт что-то не так, как задумано:
"C:\Program Files\Unity\Editor\Unity.exe.bak"
Затем скачиваем и распаковываем себе в любое удобное место x64dbg из раздела Releases. На момент написания статьи, самой новой была версия «snapshot_2017–12–26_13–39.zip». Запускаем x64dbg с помощью лаунчера x96dbg или же напрямую из его подкаталога:
Меняем одно условие
Итак, пришла пора действовать. Открываем меню File => Open (также горячая клавиша F3 или первая пиктограмка на панели инструментов) и шагаем в каталог установленного Unity, выбираем всё тот же исполняемый файл редактора «Unity.exe» о котором упоминалось выше, получим примерно следующее:
Интерфейс может чуток притормаживать при обработке больших списков, поэтому терпеливо пишем в поле Search строку «GetSkinIdx»:
Двойным кликом по строке результата поиска переходим по его адресу на вкладку CPU:
Здесь нас интересует инструкция jne. Опять таки двойным кликом по ней открываем диалоговое окно, в котором меняем эту инструкцию на je, остальное не трогаем:
После применения правки, открываем контекстное меню и выбираем Patches (Ctrl + P):
При помощи кнопки Patch File сохраняем новый Unity.exe временно куда-нибудь, потому что текущий файл занят отладчиком:
Проверка результата
Поздравляю, всё выполнено успешно. Остаётся лишь закрыть отладчик и перезаписать оригинальный Unity.exe тем файлом, который сохранили при помощи Patch File. Убедиться в том, что не затронули случайно чего лишнего, можно сравнив по содержимому резервную копию с новым файлом, должен отличаться только один байт и больше ничего:
Запускаем и наслаждаемся тёмной темой оформления:
Вполне вероятно, что в Unity перепрятают тёмную тему и описанный тут метод перестанет работать. Но как известно, против лома нет приёма. Также может наоборот произойти чудо, наконец-то прислушаются к пользователям и таки сделают её бесплатной.