分享一个调试unity原生API的方法,注意:只能调试外围C#包裹类,更里面还是用C++写的,还是被封装起来的
首先确定目标接口所在的dll文件
以调试Transform.localEulerAngels为例:
由上图可知目标DLL文件为:UnityEngine.CoreModule.dll
关闭所有unity项目和visual studio。注意以下所有命令使用cmd而不是powershell。
dll转debug模式
找到编辑器安装文件夹(D:\DevTools\Unity\2018.4.1f1\Unity\Editor\Data\Managed\UnityEngine)下的UnityEngine.CoreModule.dll,
运行如下命令:
ildasm UnityEngine.CoreModule.dll /out=UnityEngine.CoreModule.il
ilasm /dll /debug /Out:UnityEngine.CoreModule.dll UnityEngine.CoreModule.il
(我本地的ildasm位于 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\x64,ilasm位于 C:\Windows\Microsoft.NET\Framework\v4.0.30319, 把对应目录添加到path即可)
这一步的目的是将UnityEngine.CoreModule.dll由release模式转为deb