游戏开发unity编译和调试系列:Unity调试DLL

看了网上很多文章以及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要生成的目录))

        

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

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

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

 

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

 

一些操作的验证

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

        例如这篇

                https://www.cnblogs.com/vkensou/p/12244986.html

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

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

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

 

 

其他调试方法:

        直接调试打包好的exe项目,参见https://blog.csdn.net/moonlightpeng/article/details/79017204

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值