Открыть старую dll

191
29 мая 2022, 14:50

Есть старый ассет для Unity - последняя версия была для .NET 3.5 Ассет этот умеет рисовать текстуры на мешах, и делает это хорошо. Мне надо увеличить размер кисти - в оригинале он ограничен слайдером от 1 до 100, что делает невозможным рисование на больших объектах - кисть слишком маленькая. Я думал это поменять в скрипте, но, к сожалению, весь код вынесен в отдельную сборку .dll

Я попытался открыть .dll DotPeek и .NetReflector, и оно успешно открывается, я даже без проблем нахожу нужный класс и переменную - brush.size

Но что дальше? Кусок кода нужный мне выглядит примерно вот так

this.brush.size = GUI.Slider.value(0,100);

В идеале бы заменить его на

this.brush.size = GUI.Slider.value(0,10000);

и это бы скорее всего решило все мои проблемы. Но внутри самого DotPeek и Reflector ничего не меняется. Как поменять одну строчку и сохранить dll обратно?

Если я выбираю экспорт проекта, он создает мне новый C# проект, внутри которого находятся и некоторые классы юнити, используемые этой сборкой, и классы самого ассета. И этот проект УЖЕ не компилируется, хотя только что был создан был декомпилером. Не находит часть типов, классов и ссылок на dll. Но как то он же жил без этого, находясь в сборке?

Возможно, я стреляю из пушки по воробьям и поменять строчку можно быстрее и проще - но как это сделать? Может быть это можно сделать прямо во время выполнения...

Answer 1

Можно попробовать использовать dnSpy: https://github.com/dnSpy/dnSpy

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

Если не получится, то есть вариант внести правки непосредственно в IL код, но это посложнее будет.

Не забудьте после исправлений сохранить модуль.

READ ALSO
Групировка Datagrid

Групировка Datagrid

Как сделать групировку datagrid? Мне надо групировка по одному столбцуВот мой DataGrid:

335
C#. Почему не отправляется(или не приходят) email сообщения?

C#. Почему не отправляется(или не приходят) email сообщения?

Не знаю в чем может быть проблемаВ верности почт и пароля я уверен

163
как собрать x32 приложения в x64 системе - с#

как собрать x32 приложения в x64 системе - с#

мне нужно собрать x32 приложения в x64 системе в visual studio 2019 , или есть програма которая переделывает x64 битное приложения под x32 ??

387
Отключение обработки события

Отключение обработки события

Есть событие pictureBox1_MouseWheelИ мне нужно отключать его при запуске формы и включать по нажатию на кнопку, есть ли простой способ это сделать? (желательно...

243