我正在尝试使用VS2017在Unity中调试协程 .
当我将VS连接到Unity并在 IEnumerator 方法中设置断点时,我收到错误"Breakpoint will not be hit"
IEnumerator
这里有详细讨论:How do I remedy the "The breakpoint will not currently be hit. No symbols have been loaded for this document." warning?
然而,这些答案都不适合我 .
你知道如何在VS2017中的IEnumerator中设置断点吗?
这是Unity中的已知错误 . 以下是解决此问题的方法:
1 . 转到文件 - >构建设置...然后选择您的平台 .
2 . 单击“播放器设置” - >“其他设置”,将API兼容级别更改为.NET 2.0 .
如果已将其设置为.NET 2.0,请将其更改为.NET 2.0 Subset,然后再将其更改为.NET 2.0 .
3 . 关闭并重新打开Visual Studio . 从Visual Studio,转到Build - > Clean Solution,然后构建 - > Rebuild Solution .
再次尝试调试它应该工作 .
如果上述步骤不起作用,请转到Project的Library文件夹,然后将其删除 . 重新启动Unity和Visual Studio .
在我的情况下,这是因为我使用“附加到进程”而不是“附加到Unity ...” . 后者不可用,因为VS的Unity插件无法安装 .
我遇到过同样的问题 . 以下步骤解决了我 .
导航至 build->configuration manager .
检查项目配置 . 如果设置为 production ,请将此值更改为 debug .
我找到了解决方案(解决方法) . 您需要将属性[InitializeOnLoad]添加到类中 .
我花了足够的时间找到解决方案 . 转到Build-> Configuration Manager并将Active Solution Configuration更改为Debug .
在我的情况下,这发生在场景中的 this script was not attached to anything ,因此,断点永远不会被击中...某些在C中工作的人出乎意料 . 不过,这是一个很好的副作用 .
6 回答
这是Unity中的已知错误 . 以下是解决此问题的方法:
1 . 转到文件 - >构建设置...然后选择您的平台 .
2 . 单击“播放器设置” - >“其他设置”,将API兼容级别更改为.NET 2.0 .
如果已将其设置为.NET 2.0,请将其更改为.NET 2.0 Subset,然后再将其更改为.NET 2.0 .
3 . 关闭并重新打开Visual Studio . 从Visual Studio,转到Build - > Clean Solution,然后构建 - > Rebuild Solution .
再次尝试调试它应该工作 .
如果上述步骤不起作用,请转到Project的Library文件夹,然后将其删除 . 重新启动Unity和Visual Studio .
在我的情况下,这是因为我使用“附加到进程”而不是“附加到Unity ...” . 后者不可用,因为VS的Unity插件无法安装 .
我遇到过同样的问题 . 以下步骤解决了我 .
导航至 build->configuration manager .
检查项目配置 . 如果设置为 production ,请将此值更改为 debug .
我找到了解决方案(解决方法) . 您需要将属性[InitializeOnLoad]添加到类中 .
我花了足够的时间找到解决方案 . 转到Build-> Configuration Manager并将Active Solution Configuration更改为Debug .
在我的情况下,这发生在场景中的 this script was not attached to anything ,因此,断点永远不会被击中...某些在C中工作的人出乎意料 . 不过,这是一个很好的副作用 .