Unity VS—— VS中默认调试为启动而不是附加到Unity调试
Posted ۓ明哲ڪ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity VS—— VS中默认调试为启动而不是附加到Unity调试相关的知识,希望对你有一定的参考价值。
声明:本文为个人笔记,用于学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系,违规必改。
文章目录
开发环境
Unity 2018.2.3
Visual Studio 2019(以下简称VS)
一、问题描述
通过Unity打开脚本后 visualstudio调试按钮显示为启动而非附加到Unity.如下图一所示:
图一(错误效果)
图二(正确效果)
二、问题原因及解决方案
问题产生原因:
原因一——可能未安装对应工具
猜测可能是因为VS为后期自己安装,而非安装Unity时通过它提供的选项下载安装导致VS的调试未和Unity进行完全关联(仍可通过VS菜单栏调试——附加到Unity程序进行调试,但VS默认显示按钮为启动而非附加到Unity).
原因二:当前版本对高版本VS部分功能默认不支持
Unity2018对应的默认下载VS为2017,可能该版本Unity并不能很好的支持VS2019
解决方案:
通用步骤:
打开VS安装程序 Visual Studio Installer —— 修改——单个组件——搜索Unity,并安装Visual Studio Tools for Unity.
图三
图四
打开Unity——Editor—— Preferences——External Tools —— External Script Editor选择对应VS,并且Editor Attaching勾选上.如下图所示
图五
以下解决方案均在通用步骤完成后才能进行.
解决方案一:
VS菜单栏—调试选项—附加到Unity程序调试—选择对应设备
解决方案二(推荐):
将Visual Studio 2017 Tools.unitypackage 导入Unity.文件位置如下
C:\\Program Files (x86)\\Microsoft Visual Studio Tools for Unity\\15.0
关闭重新启动Unity和VS即可.(查看)
总结
保持饥饿,保持愚蠢.
这世界唯一能够相信的就是你付出的努力和你走过的路.
VS Code 在集成终端而不是调试控制台中开始调试
【中文标题】VS Code 在集成终端而不是调试控制台中开始调试【英文标题】:VS Code starts debugging in integrated terminal instead of debug console 【发布时间】:2018-09-09 09:22:44 【问题描述】:我使用 VS Code 已经有一段时间了,就在今天我开始遇到这个奇怪的问题。以前,如果我开始调试程序 (F5),它将开始调试并在“调试控制台”中显示输出:
但现在它在“终端”中启动调试器 并输出到“调试控制台”。
这是我的 launch.json:
"version": "0.2.0",
"configurations": [
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "$file"
]
我希望在“调试控制台”中输出 only(以前的默认行为)。请帮我把它恢复到原来的样子。
【问题讨论】:
【参考方案1】:编辑 3
与 python 扩展的release 2019.4.0 一样,现在可以将console
选项设置为internalConsole
(#4321)。
在.vscode/launch.json
:
"console": "internalConsole"
编辑 2
按照omartin2010's answer 的建议,您可以另外设置选项
"internalConsoleOptions": "openOnSessionStart"
开始调试时自动打开调试控制台。
编辑 1
将 "console" 选项显式设置为 "none"
最初是可行的方法(请参阅答案),但现在“无”不再有效(请参阅上面的编辑 3)
"console": "none"
原答案
要确保将输出写入调试控制台,您可以设置debugOptions。
在 yourlaunch.json
中将以下条目添加到您的配置中应该可以修复它:
"debugOptions": [
"RedirectOutput"
]
【讨论】:
它已经做到了。但它会打印到两个终端,当我开始调试时它会转到终端而不是调试控制台 那么可能明确设置console 选项会有所帮助。尝试设置"console": "integratedTerminal"
:
如果你最终需要终端,问题会更大。使用 none 代替添加新配置会更容易【参考方案2】:
最初下面的配置有效,但它似乎已被弃用,现在抛出错误:
"console": "none"
新的用法是:
"console": "internalConsole"
GitHub 中记录了一个错误以更新文档here。
【讨论】:
【参考方案3】:我遇到了同样的问题,但我通过在顶部添加一个看起来像这样的新配置来解决它:
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "$file",
"console": "internalConsole"
,
我发现这是一个更好的解决方案,因为我不必更改我的其他调试功能之一。在您的情况下,“Python:终端(集成)”调试选项。我需要调试控制台功能。我使用这两个函数,它们会在我希望显示输出的位置显示输出。
【讨论】:
现在我只能根据需要在调试控制台中获得输出,但是,如何让调试控制台在我开始调试时自动启动?【参考方案4】:我猜不久前也有可能添加此选项...之前不确定是否可行:
...
"internalConsoleOptions": "openOnSessionStart",
...
希望对你有帮助
【讨论】:
【参考方案5】:
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "$file",
"stopOnEntry": false,
"console": "none"
,
这些是我的 launch.json 设置,它正在使用它。
【讨论】:
基本上,除了“stopOnEntry”属性外,答案与@SnitchingAuggie 相同。请解释为什么这很重要。【参考方案6】:接受的答案对我不起作用,因为它似乎不是我的 VSCode Version 1.30.2 (1.30.2)
版本的选项:
Unknown console type 'none'.
我的解决方案是改用internalConsole
选项。我想它必须默认为我的版本上的integratedTerminal
选项。
这是一个例子:
NOTE: this is an example from my nodejs project but the console portion is still relevant regardless of project type. I have included more to show some context as well as other features such as envFile usage.
...
"type": "node",
"request": "launch",
"name": "Launch Program",
"envFile": "$workspaceRoot/.env",
"program": "$workspaceFolder/src/index.js",
"autoAttachChildProcesses": true,
"console": "internalConsole"
,
...
【讨论】:
OP的问题是指python调试不是nodejs 在这种情况下,项目类型实际上是无关紧要的。这通常是 IDE 设置的一个问题,适用于任何项目类型的打印输出到调试控制台。我知道如果您复制并粘贴我的完整配置可能会造成混淆,因此我会更新我的答案。【参考方案7】:如果您像我一样并且实际上想要做相反的事情(即阻止 VSCode 自动切换到“调试控制台”选项卡,而不是仅仅停留在“终端选项卡”上),那么我发现解决方案是将此设置添加到您的 launch.json
文件中:
"avoidWindowsConsoleRedirection": true
【讨论】:
以上是关于Unity VS—— VS中默认调试为启动而不是附加到Unity调试的主要内容,如果未能解决你的问题,请参考以下文章