INTSourceChangelist:2874484 Availability:Public Title:为虚幻 4 设置 Visual Studio Crumbs: %ROOT%, Programming, Programming\Development Description: 关于设置 Visual Studio 以便使用 UE4 进行开发的技巧和方法。 Version: 4.9 [TOC(start:2)] [EXCERPT:Intro] 虚幻引擎 4 (UE4)从设计上就是面向 Visual Studio 的方便整合性,能够快速且方便的修改项目代码,并即刻得到编译反馈。根据 UE4 来正确设置 Visual Studio 能够提高工作效率,并获得更好的使用体验。 在这篇文档中,将会涵盖 UE4 在 VS2013 上的基本的一些方法。 [/EXCERPT:Intro] ## 开始设置前 首先,要注意,Visual Studio 2015(VS2015)默认安装时并不包含 C++ 的工具。在安装 VS2015 时,需选择 **自定义** 安装并勾选 C++ 组件,这对之后的工作时必须的。如果已经安装了 Visual Studio 2015 的话,可以选择 **File > New > Project > C++** 来安装 C++。 下表中列出了 UE4 的版本和预整合的 Visual Studio 版本的对应关系。 | 虚幻引擎版本 | Visual Studio 版本 | | ------------------------- | --------------------- | | **4.10 及以后** | VS2015 | | **4.2 到 4.9** | VS2013 | 虚幻 4 的开源版本(从 GitHub 或 P4 上下载的)已经整合了 VS2013。更早的 UE4 版本和更老的 Visual Studio 这里就不做更多描述了。 ## 推荐设置 以下是为结合使用Visual Studio和虚幻引擎4的开发人员推荐的设置。 [EXCERPT:BasicVSFormat] 1. 根据以下步骤来增加 Solution Configurations 的下拉框宽度: 1. 右键工具栏,选择 **Customize**。 ![](SelectingCustomize.png) 1. 点击 **Commands** 分页。 ![](ClickCommandsTab.png) 1. 选择 **Toolbar** 选项。 ![](SelectToolbarRadioButton.png) 1. 在 **Toolbar** 边上的下拉框内,选择 **Standard**, ![](SelectStandard.png) 1. 在 **Controls** 列表的底部,选择 **Solution Configurations**。 ![](SelectSolutionConfigControl.png) 1. 点击右侧的 **Modify Selection**。 ![](ClickModifySelection.png) 1. 将 **Width** 设置为 '200'。 ![](SetWidth_200.png) 1. 点击 **Close**,工具栏会自动更新。 ![](ClickClosetoUpdateToolbar.png) 1. 根据以下步增加 Solution Platforms 下拉框。 1. 找到标准工具栏中最右侧的按钮,点击后有一个下拉菜单,可以为工具栏添加或删除按钮。 ![](SelectDropDownButton.png) 1. 点击下拉按钮,鼠标移至 **Add or Remove Buttons**,并点击 **Solution Platforms** 以将它添加到工具栏中。 ![](SelectSolutionPlatforms.png) 1. 我们建议关闭 **Error List** 窗口。通常,**Error List** 窗口会在遇到错误时自动弹出。然偶,在使用虚幻引擎工作时,**Error List** 可能会显示虚假的错误信息。最好的做法是禁用 **Error List** 窗口并使用 **Output** 窗口来查找真正的代码错误。以下步骤可以关闭 **Error List** 窗口: 1. 如果 **Error List** 窗口开着的话,先关闭它。 1. 从 **Tools** 菜单中,打开 **Options** 对话框。 ![](OpenOptionsDialog.png) 1. 选择 **Projects and Solutions** 并且取消勾选 **Always show Error List if build finishes with error**。 ![](UncheckErrorsListOption.png) 1. 点击 **OK**。 [/EXCERPT:BasicVSFormat] [REGION:tip] 其他可能有用的配置选项: * 关闭 **Show Inactive Blocks(显示不活动的代码块)** 。如果您不关闭此项,在文本编辑器中,很多代码块会呈现出灰掉状态。(_Options(选项) > Text Editor(文本编辑器) > C/C++ > Formatting(格式))_ 。 * 打开IntelliSense(智能编码)和"squiggles(波浪线提示)"功能,让它们正常运行。(请参照[Intellisense(智能编码), Live Errors(实时错误)和Squiggles(波浪线提示)](#Intellisense)部分) * 如果不需要 **Edit & Continue(编辑&继续)** 功能,请关闭它们。(_Options(选项) > Debugging(调试) > Edit and Continue(编辑并继续)_) [/REGION] ### Visual Assist X 用户推荐设置 * 在 Visual Assist X (VAX)中关闭 **Format After Paste(粘帖后格式化)** 功能。这个功能有时候会导致格式变得混乱。(_VAX Options(VAX选项) > Advanced(高级) > Corrections(校正)_) * 在解决方案浏览器中停用 **External(外部)** 文件夹, 它们会扰乱视图。( 在 _Options(选项) > Text Editor(文本编辑器) > C/C++ > Advanced(高级)_ 中 **Disable External Dependencies Folder(禁用外部依赖文件夹)** ) (#Intellisense) ## Intellisense(智能编码)、Live Errors (实时错误)和 Squiggles (波浪线提示) 虚幻引擎 4 项目现在可以正常支持 IntelliSense(智能编码)功能,包括实时 Error List(错误列表) 和 Squiggles(波浪线提示)。 (请参照以下介绍获得如何启用它的信息。) VC10 的 IntelliSense 功能可以在您编写代码的过程中重新编译C++。这比仅检查 VAX 的语法强大很多: VC10使用完整的C++编译器,可以验证每一行代码。这个功能非常强大并且将会加快您的工作流程! ![VC++ Intellisense Squiggles](squiggle.png) 当其和波浪线提示功能结合使用时,如果您正在查看的文件有任何IntelliSense 错误,都可以在Error List(错误列表)中看到。您可以通过Error List(错误列表)的右击菜单来打开或关闭该功能。 ![VS 2010 Error List](error_list.png) 由于 Squiggles(波浪线提示) 功能不能和虚幻引擎 4 项目协同工作,您可能已经禁用了它们。请确保点击 C/C++ Advanced(高级) 选卡,并使用以下设置。 ![VC++ Advanced Options](intellisense_options.png) 当您打开一个 C++ 文件时,您可以通过查找这个图标来判断 IntelliSense 编译器是否正在“工作”: ![Intellisense Progress Indicator](intellisense_progress.png) ### 实现细节 * 当编写代码时显示波浪线提示有时候要花几秒钟的时间。 * 这是因为我们有很多包含文件,且 IntelliSense 目前不使用预编译头文件。 * 有时候您会看到“误报的” IntelliSense 错误。以下是几种可能的原因。 * IntelliSense 编译器(EDG)比 MSVC 编译器更严格。 * 某些针对 IntelliSense 的 #defines 设置和正常编译时的设置不同。 * IntelliSense 编译的 C++ 总是被当做32位对待。 * 如果绝对需要,您可以把代码封装到 `#ifdef __INTELLISENSE__` 中,以消除波浪线提示。 * IntelliSense 的错误的表达方式和 VC++ 编译器的错误的表达方式略有不同。他们只是表达不同而已。 * 头文件中的 Squiggles(波浪线提示)功能通过编译包含它的已知 `.cpp` 对应的头文件来进行工作。 * 有时候 IntelliSense 把这个功能搞乱了,导致您会在头文件中看到波浪线提示。 * 如果需要,您可以增大 **Max Cached Translation Units(最大缓存变换单元)** 设置。 * 它会使用更多的内存,但可能会提高一点反应速度。 * 有少量 C++ 文件还不能和 IntelliSense 相兼容。 * Unreal Build Tool有一个新的 `-IntelliSense` 选项。 * 这将为我们的所有项目文件产生 IntelliSense 属性表。 * 当添加了新的模块或者项目包含发生改变时仅需要重新运行它即可。 ## UnrealVS 插件 [INCLUDE:Programming/Development/VisualStudioSetup/UnrealVS#Overview] [PUBLISH:Rocket] [REGION:note] UnrealVS 插件不能和 Visual Studio 2012 精简版协同工作。它仅能和 Visual Studio 2012 专业版相兼容。 [/REGION] [/PUBLISH:Rocket] 请参照 [](Programming/Development/VisualStudioSetup/UnrealVS) 页面获得设置及使用该插件的信息。 ## 调试 Visual Studio 支持通过‘可视化查看器’来扩展调试器,从而轻松地查看常见的虚幻数据类型,比如对象FNames 和动态数组。根据您所使用的 Visual Studio 2010 或 Visual Studio 2012的不同,这个功能的设置也有所区别。 [PUBLISH:Licensee] ### 针对 Visual Studio 2010 的可视化查看器设置 虚幻引擎 4 包含了一些针对 Visual Studio 中的 `autoexp.dat` 文件的附加内容,使您可以在调试器中轻松地查看UE4数据类型(array, name, map等)。 可以在以下位置找到这些附加内容: //depot/UE4/Engine/Extras/VisualStudioDebugging/AUTOEXP.DAT_addons.txt 您可以设置环境变量 `_vcee_autoexp` 为 `AUTOEXP.DAT_addons.txt` 文件的本地路径,从而使得可以自动包含这个文件中的内容。这意味着不需要将该内容融合到 `autoexp.dat`文件中。 另一个选择是将这些内容融合到您的 Visual Studio 2010 `autoexp.dat` 文件中,可以在以下位置找到该 `autoexp.dat` 文件 (默认): C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Packages\Debugger\autoexp.dat [/PUBLISH:Licensee] ### 针对 Visual Studio 2012 的可视化查看器设置 [PUBLISH:Licensee] 您会发现 UE4 发布内容包含了具备该可视化查看器逻辑的文件。 //depot/UE4/Engine/Extras/VisualStudioDebugging/UE4.natvis [/PUBLISH:Licensee] [PUBLISH:Rocket] 您会发现您的安装文件中包含了具备该可视化查看器逻辑的文件: [ROCKETINSTALL]/Engine/Extras/VisualStudioDebugging/UE4.natvis [/PUBLISH:Rocket] 复制该文件到以下位置: [VSINSTALLDIR]/Common7/Packages/Debugger/Visualizers/UE4.natvis [USERPROFILE]/My Documents/Visual Studio 2012/Visualizers/UE4.natvis [REGION:warning] 复制该文件到您的 Visual Studio 安装目录内可能需要管理员权限。 [/REGION] [COMMENT:none] ## 提示和技巧 这里是一些技巧,可以使您在编程时更加轻松,效率更高。 [/COMMENT]