看了网上很多文章以及vs官方说明,目前发现

        ● unity里不能实现从c#的DLLImport的函数声明 跳转到c++实际代码的,而这点可以在C#控制台程序内实现

        ● unity的vs解决方案包含了C#工程和C++工程时,只能调试C#和C++中的一个,不能两个同时在一个工程内调试,这点在C#控制台程序内实现。要调试,只能是两个vs工程,一个调试C#,一个调试C++

如果可以做到unity中C#和C++工程同时在一个解决方案中调试的,请务必在评论区留言打我脸,因为我也想知道o(╥﹏╥)o

 

微软官方有提供C#控制台程序调用C++的调试方案

       https://docs.microsoft.com/zh-cn/visualstudio/debugger/how-to-debug-managed-and-native-code?view=vs-2019

        个人实践过,可以同一个解决方案不同的项目,支持单步调试,从C#跳转到C++(调试时才能跳转,普通F12不能跳转)

 

Unity内调试DLL

       C++代码可以同微软官方给出的,DLL需要生成或复制到Plugins/x86_64(根据你的系统是64为还是32位决定的)下(如果提示“DllNotFoundException: xxx.dll”多半说明dll不在plugins对应的平台目录下)

       pdb文件与DLL同级,生成或复制都可

        (PS:vs修改DLL输出目录和pdb输出目录,可分别设置:项目的配置属性->常规->输出目录;项目的配置属性->链接器->调试->生成调试信息(选择/DEBUG),生成程序数据文件(写入pdb要生成的目录))

        

unity douzyui 使用感受 unitydll_unity

        之后,选择vs的 “调试” 菜单->附加到进程->选择Unity.exe,打上断点,断点所在函数被调用时就可以开始调试了

        这一步也可以通过下图设置 命令和附加来避免每次都要手动附加进程的繁琐操作

        命令指的unity编辑器运行程序的路径,附加选是

unity douzyui 使用感受 unitydll_c++_02


 

        另外,可以C#与C++同时调试,C#按正常的附加到Unity进程即可

 

一些操作的验证

        网上有些操作如下,验证过,没有必要

        例如这篇

                

        1.VS菜单栏【工具】-> 【选项】

        2.在选项对话框中设置【适用于Unity的工具】->【访问项目属性】为True

        3.打开项目属性页面,选中【启用本地代码调试】

 

 

其他调试方法:

        直接调试打包好的exe项目,参见