[翻译] Unreal C++集成开发环境的选择与准备
Choosing & Preparing Integrated Development Environment for Unreal C++
要高效地使用Unreal C++,您需要做些什么?
目前,虚拟引擎支持的集成开发环境很少。
Rider
虚幻引擎支持落地Rider 2022.1 EAP。但是,您可以使用预览版本,直到2022年3月31日。
Rider是一个面向C++的新选项,是JetBrains的虚幻引擎。这家公司以为程序员提供优秀的工具而闻名,特别是为特定语言和行业提供多种IDE。Rider本身就变成了“Gamedev IDE”。多年来,它一直在用C#支持Unity。
现在你可以同时使用它,Unity和UE。
优点
- 尽管提供了更多功能,但其轻量级和响应性几乎与Visual Studio Code相同。从通常运行非常慢、在编辑或使用调试器期间挂起数秒的Visual Studio跳到Rider是非常令人愉快的。
- 用户界面是现代的,干净的,非常可定制的。查找信息、读取调试器的值要容易得多。
- ReSharper是内置的,几乎提供了ReSharper C++(Visual Studio插件)的所有功能。这为我们带来了先进(而且快速!)的代码搜索、导航、重构操作和代码检查!对于像虚幻引擎这样庞大的代码库来说,这是无价的。
- ReSharper简化了整个团队中编码标准和健康代码库的维护。
- 它确实如此,这要归功于自动格式化和代码检查,而且你可以对每一个细节进行调整。
- 您可以将代码样式和代码检查等设置提取到存储库中保存的团队共享设置中。
- Rider对于虚幻引擎增加了一些巫毒魔法(voodoo magic)。
它能够分析虚幻项目中的资产,因此它可以做这样的事情(没有其他IDE做这项工作,在VS或VSC中也没有这种虚幻特定的功能):- 显示查看C++ header后继承的蓝图类。它创建了指向这些蓝图的链接,只需一次点击即可打开蓝图编辑器。
- 显示被蓝图和.ini文件覆盖的默认值!编辑器还会创建指向资源的链接,即分配给特性的材质。
- 在蓝图中找到C++函数的用法。
- 如果您重命名暴露于蓝图的属性或类,它可以在.ini中创建属性或类的重定向。
- 它支持所有开箱即用的版本控制系统,包括Perforce。
- 它可以在Windows、Mac和Linux上使用。您可以在任何系统上使用单个IDE,无论是使用C++的虚幻还是使用C#的Unity。
缺点
- 收费
- 它不是虚幻引擎中的默认IDE。我们可能会期待JetBrains提供出色的支持,但Epic很可能会坚持使用免费且经过验证的Visual Studio作为默认IDE。
- JetBrains团队需要编写他们自己的C++调试器,因为VS调试器是Visual Studio不可或缺的一部分。它工作得很好,但缺乏一些高级调试功能。
- 它还不支持调试控制台。工作正在进行中,因为索尼和任天堂提供了一些支持。
- 它还没有提供与UnrealVS扩展完全等价的扩展。
JetBrains创建了自己的EzArgs插件,它为我们提供了一种为虚幻引擎进程设置命令行参数的便捷方法。
批处理生成器仍然是UnrealVS中可用的功能,但在Rider中缺失。
Visual Studio
您可以免费获取Visual Studio社区版Visual Studio Community!
优点
- 这是一款久负盛名的Gamedev程序员编辑器。如果你出于任何原因不使用Rider,这是推荐的IDE。
- C++调试器非常出色,它是由开发Microsoft Visual C++编译器的同一家公司开发的。
- 出于这些原因,它是虚幻引擎的默认IDE。被Epic Games使用了很长时间,所以他们提供了这些资源:
- 为虚幻引擎设置Visual Studio——官方安装指南和基本设置。
- UnrealVS Extension——这是一个非常有用的扩展,允许您轻松添加启动参数并一次性构建多个配置。
缺点
-
免费的社区版仅适用于5个或更少并发(VS)开发人员的学生、开源和商业工作室。较大的公司应该使用付费的Visual Studio版本。
-
这很令人惊讶,但VS对编辑C++的支持是...几乎不存在。虽然有智能感知功能,但它不能很好地处理庞大的代码库,比如游戏引擎和虚幻引擎中随处可见的宏指令。许多程序员只是喜欢禁用智能感知,而使用包含对虚幻引擎的支持和更好的语法突出显示的视觉辅助。还有许多代码搜索、导航和重构的功能,其中一些在经常使用时实现得非常糟糕,但使用Visual Assist可以更好地简化这一过程。
这确实无论是vs还是vs code智能提示可以说灾难级了,甚至有时候感觉vs code的提示都比vs的要好,不过vs的提示速度比vs code要快,但都好不到哪里去。
-
原始的Visual Studio不提供任何虚幻特定的支持。
-
Perforce插件不是Visual Studio本身的一部分。你需要自己添加P4VS插件,但这是免费的。该插件自动签出(标记为已编辑)您开始编辑的每个源文件。这种使用Perforce的方式对程序员来说很方便。
-
在2022年之前,VS是一个32位进程,可能只使用2-4 GB的RAM。这是针对IDE的,所有的插件都加载了项目数据。ReSharper C++本身就需要数百MB。这就是为什么VS在用于大型项目时如此迟缓的主要原因,而每个虚幻引擎项目都被认为是大型项目,因为它包括引擎源代码。
-
注意!随着VS 2022的发布,其中一些问题已经成为过去!请记住,VS 2022仅受UE 4.27和尚未发布的UE5支持。
-
- Visual Studio 2022终于是一个64位应用程序了!
- 18x Faster IntelliSense for Unreal Engine Projects in Visual Studio 2022.
- ReSharper C++从2021.3版开始支持VS2022。
- 随着内存限制的消失,ReSharper C++插件中可能会启用一些Rider功能。
修复VS的可用性Fixing VS Usability
虚幻引擎4的代码库包含数百万行代码。对于原始版本的 Visual Studio来说,处理如此庞大的代码库是太多了,所以几乎每个程序员都需要一个支持插件,这些插件还带有许多编辑功能和虚幻的支持。
您可以从下面描述的两个选项中选择一个。两者都是收费的,但绝对物有所值。
- ReSharper C++是的,这是Rider一节中描述的JetBrains插件。提供了比可视化助手更多的功能,尤其是在代码导航和重构方面。它也是Rider的一部分,所以在VS+ReSharper和Rider之间切换非常容易。
- Visual Assist(也称为VAX)。在很长一段时间里,这是程序员的唯一选择。不仅适用于虚幻引擎程序员,也适用于使用内部引擎的开发人员。VAX包括与虚幻引擎一起工作的独家功能。
- 只需学习这些顶级功能top features即可。这几条捷径是无价的节省时间的方法。
- UE4 Smarter宏缩进(UE4 Smarter Macro Indenting)可正确处理UE4宏后下一行的缩进。多亏了这一点,您的代码看起来更接近引擎的编码标准,也更容易阅读。
- 如果您已经在使用ReSharper C++或最新版本的VAX,则可能不需要这样做。
Visual Studio Code
它不是真正的IDE,它更像是一个智能记事本。虽然它在程序员中很受欢迎,但原因很少。
优点
- 它是完全和永远免费的。
- 它是从头开始建造的,轻量化,模块化。这真是太神奇了。VSC代码搜索可以在虚幻引擎的整个代码库中快速找到任何字符串。
- 它可以在Windows、Mac和Linux上使用。
缺点
- Epic Games为VSC提供了基本的支持,但随着新引擎的发布,它有时会被打破。
- 它不提供高级编辑或调试功能,而且由于其体系结构的原因也无法提供。这是JetBrains工程师的回答:解释为什么VSC不会有ReSharper。
- 工作室通常希望程序员熟悉适当的IDE,如Visual Studio或Rider。
这是因为这些IDE、VAX和ReSharper的高级功能极大地帮助编写更好的代码并遵循编码标准。