Unity 有一个旧资产 - 最新版本是 .NET 3.5 这个资产可以在网格上绘制纹理,并且做得很好。我需要增加画笔的大小 - 在原始画笔中,它受到 1 到 100 的滑块的限制,这使得无法在大型物体上绘画 - 画笔太小了。我曾考虑在脚本中更改它,但不幸的是,所有代码都移到了单独的 .dll 程序集中
我尝试打开 DotPeek 和 .NetReflector .dll 并成功打开,我什至找到了正确的类和变量,没有任何问题-brush.size
但接下来是什么?我需要的代码看起来像这样
this.brush.size = GUI.Slider.value(0,100);
理想情况下,您可以将其替换为
this.brush.size = GUI.Slider.value(0,10000);
这可能会解决我所有的问题。但在 DotPeek 和 Reflector 内部,没有任何变化。如何更改一行并将dll保存回来?
如果我选择导出项目,它会为我创建一个新的 C# 项目,其中包含此程序集使用的一些单元类,以及资产本身的类。这个项目不再被编译,尽管它只是由反编译器创建的。找不到某些类型、类和对 dll 的引用。但是没有它,在集会中,他如何生活?
也许我用大炮射击麻雀并改变路线可以更快更容易 - 但怎么做呢?也许它可以在运行时完成......
您可以尝试使用 dnSpy: https ://github.com/dnSpy/dnSpy
加载程序集,找到所需的方法并尝试在代码编辑器中更改并编译。
如果不成功,则可以选择直接对 IL 代码进行更改,但这会更困难。
更正后不要忘记保存模块。