You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Visual Studio调试器在Unity抛出AssertionException时中断?

解决Visual Studio调试Unity时AssertionException不触发中断的问题

我之前也踩过一模一样的坑!明明其他异常都能正常触发调试中断,日志里也能看到Unity断言抛出的异常,就是VS调试器不响应,手动加自定义异常还没效果,确实让人头疼。咱们来一步步精准解决这个问题:

1. 先明确Unity断言对应的异常类型

Unity的断言(比如Assert.IsTrue()这类方法)抛出的异常是完整的命名空间+类名:UnityEngine.Assertions.AssertionException,这是关键——很多人失败就是因为只加了命名空间,没写全类名。

2. 正确添加自定义异常到VS的Exception Settings

打开Visual Studio,按照以下步骤操作:

  • 打开异常设置面板:通过顶部菜单Debug > Windows > Exception Settings,或者直接按快捷键Ctrl+Alt+E。
  • 在面板里找到Common Language Runtime Exceptions,右键点击它,选择Add Exception。
  • 在弹出的输入框里,一字不差地输入:UnityEngine.Assertions.AssertionException,然后点击确定。
  • 确保这个新添加的异常前面的复选框是勾选状态,这样调试器才会在它抛出时中断。

3. 检查Unity的断言配置(很容易忽略!)

光设置VS还不够,得确保Unity本身是把断言设置为抛出异常的:

  • 打开Unity Editor,进入Edit > Project Settings > Player。
  • 切换到Other Settings标签,找到Assertions区域。
  • 确保Enable Assertions是勾选状态,并且Assertion Handler设置为Throw Exception(如果是Log Only的话,Unity只会打日志,不会真正抛出异常,VS自然不会中断)。

4. 额外的排查小技巧

如果按上面的步骤做了还是没效果,可以试试:

  • 关闭VS和Unity,删除项目根目录下的.vs文件夹(这是VS的缓存文件夹),然后重新打开项目。
  • 确认你的Unity和VS版本是兼容的(比如用Unity 2022搭配VS 2022,避免版本不匹配导致的调试问题)。

这样设置后,就只有Unity断言抛出的AssertionException会触发调试中断,第三方库的无关异常完全不会干扰,完美符合你不想捕获全部异常的需求。

内容的提问来源于stack exchange,提问作者Francois Bertrand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 14:57:31