[Из песочницы] Как включить тёмную тему редактора Unity

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» /></div>

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

<div><img src=


Интерфейс может чуток притормаживать при обработке больших списков, поэтому терпеливо пишем в поле 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 перепрятают тёмную тему и описанный тут метод перестанет работать. Но как известно, против лома нет приёма. Также может наоборот произойти чудо, наконец-то прислушаются к пользователям и таки сделают её бесплатной.

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

© Habrahabr.ru