Pull to refresh

Как включить тёмную тему редактора Unity (обновлено)

Reading time 3 min
Views 34K
Dark Side

Приветствую, решился написать об одной наболевшей проблеме, которая затрагивает многих начинающих юнитиводов с ограниченным бюджетом, да и не только. Больше шести лет уже люди просят тёмную тему редактора 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 или же напрямую из его подкаталога:

x64dbg

Меняем одно условие


Итак, пришла пора действовать. Открываем меню File => Open (также горячая клавиша F3 или первая пиктограмка на панели инструментов) и шагаем в каталог установленного Unity, выбираем всё тот же исполняемый файл редактора «Unity.exe» о котором упоминалось выше, получим примерно следующее:

File=>Open

Переходим на вкладку Symbols и слева в списке модулей выбираем unity.exe:

Symbols

Интерфейс может чуток притормаживать при обработке больших списков, поэтому терпеливо пишем в поле Search строку «GetSkinIdx»:

Search

Двойным кликом по строке результата поиска переходим по его адресу на вкладку CPU:

GetSkinIdx

Здесь нас интересует инструкция jne. Опять таки двойным кликом по ней открываем диалоговое окно, в котором меняем эту инструкцию на je, остальное не трогаем:

jne-je

После применения правки, открываем контекстное меню и выбираем Patches (Ctrl+P):

Patches

При помощи кнопки Patch File сохраняем новый Unity.exe временно куда-нибудь, потому что текущий файл занят отладчиком:

PatchFile

Проверка результата


Поздравляю, всё выполнено успешно. Остаётся лишь закрыть отладчик и перезаписать оригинальный Unity.exe тем файлом, который сохранили при помощи Patch File. Убедиться в том, что не затронули случайно чего лишнего, можно сравнив по содержимому резервную копию с новым файлом, должен отличаться только один байт и больше ничего:

CompareContents

Запускаем и наслаждаемся тёмной темой оформления:

Professional

Вполне вероятно, что в Unity перепрячут тёмную тему и описанный тут метод перестанет работать. Но как известно, против лома нет приёма. Также может наоборот произойти чудо, наконец-то прислушаются к пользователям и таки сделают её бесплатной. Если устали ждать и хочется ещё больше кастомизации — рекомендую присмотреться к Zios Themes: описание на форуме Unity + исходники на GitHub.

Видеоверсия для тех, кто предпочитает смотреть (англ.)


2020-08-12 Неожиданное обновление
Начиная с версии 2019.4.8 и выше, тёмная тема редактора Unity наконец-то стала доступной всем бесплатно. Никаких громких официальных новостей по этому поводу не было, лишь скромная заметка «Editor: Dark Theme editor preference is now available to all users» в описании к релизам:
Unity 2019.4.8 Release Notes
Unity 2020.1.2 Release Notes
Tags:
Hubs:
+21
Comments 15
Comments Comments 15

Articles