• 欢迎光临~

[翻译] 关于UE的C++

开发技术 开发技术 2022-10-12 次浏览

最近开始学习虚幻引擎使用C++来开发所以看了眼社区上面的一篇文章,就借助翻译软件翻译下来看看。


Unreal C++

学习“Unreal C++”可能比你想象的要容易得多,它已经接近自定义脚本语言的简单性了。


扩展的C++API

人们经常害怕在UE4中学习C++。它来自于纯C++需要大量的低级知识,负责清理内存,组装构建工具链。

问题是你不能在UE4中使用纯C++,就像你不能在Unity中使用纯C#一样。
多亏了这一点,为UE4编写C++代码比编写普通C++代码要容易得多。
实际上,它更类似于Unity的C#。

  • EPIC构建了一个多平台的C++库,为游戏开发量身定做。这是引擎的核心。我们通常简单地称之为“虚幻的C++”。
  • 它提供了在幕后工作的低级机制(反射、带有垃圾回收的对象处理)。这适用于标记为U-Thing的所有内容:UCLASS、UFunction、UPROPERTY。世界上的每个对象都基于UObject类,该类被自动垃圾收集。检查基本对象类。所有这些都使C++环境更接近C#或脚本语言。
  • 虚幻C++提供了自己的库,支持数学、向量、字符串(支持文本本地化)和许多其他标准的东西。只是为了让开发更容易,避免游戏程序员为每一款游戏重新造轮子。
  • 由于数十个内置的类、函数和属性说明符,代码的编写得到了简化。还有宏和许多实用程序。其效果是我们得到了一个开箱即用的全功能游戏框架。
  • 核心引擎级支持多人游戏和复制。对于标准的C++库,您不会这样做。
  • 从全职程序员的角度来看,虚幻的C++API通常被认为是“脚本语言简单性的一半”。它仍然是C++,进入门槛比任何脚本语言或C#都要高。

为自己做好准备Setting yourself up

使用适当的工具开始进入虚幻C++的领域,这对您的工作效率至关重要。
C++正在惩罚那些试图徒手接近的人。

  • 在Visual Studio中使用ReSharper C++等插件。这不是虚幻的错,因为Visual Studio工具不能很好地处理C++。尤其是像游戏引擎这样的大型代码库。C++程序员的标准做法是不依赖随Visual Studio提供的IntelliSense工具。阅读有关高效设置用于虚幻引擎的Visual Studio的更多信息。
  • 对于那些寻找比Visual Studio更好的工具的人来说,虚幻引擎的Rider即将到来。它是一个跨平台的IDE,可以在Windows、Mac和Linux上使用。预览版只能在Windows上运行,但已经受到了许多程序员的称赞。它提供了类似于VS的ReSharper++功能(因为ReSharper是内置到Rider中的)。然而,不会有免费版本。
  • Unreal C++中最烦人的事情之一是编译器/链接器错误消息,这些消息不是很清楚,特别是对初学者来说。使用像ReSharper++这样的工具非常有帮助,它确实恰当地突出了许多简单的问题。不过,如果你执着于某件事,试着在网上提问。像Unreal Slackers这样的社区是一个令人惊叹的帮助。只是不要指望他们会读懂你的心思,恰当地解释你的问题。

请注意,虚幻的C++环境在不关闭编辑器的情况下并不提供编译项目的完美方法。

  • 有一种名为热重新加载的机制(由编辑器工具栏中的一个大按钮触发),它允许重新构建C++代码,即使您更改了C++头文件(.h文件)中的代码,甚至添加了新的类。不幸的是,它偶尔会导致数据丢失。UE 4.26承诺解决主要问题UE-52220。

  • 然而,Epic从4.22开始向所有开发人员集成了Live++它允许您安全地重新编译.cpp文件中的更改。它速度快,100%稳定。即使游戏还在运行!超级甜蜜,尽管仅限于.cpp文件。它不适用于对.h文件所做的更改。

    这里不知道为啥跟我现在在学的地方有一点出入,我这边添加一些简单的UPROPERTY在.h文件中的时候好像也没啥问题,可能是因为我现在跟着教程写的还太简单了的关系吧。

虚幻C++的学习曲线是陡峭的,部分原因是官方文档没有解释编程/C++的概念-假设每个人都已经是程序员……

充分利用它Make the most of it

从理论上讲,你可以没有下面的东西--特别是如果你的团队中只有一个程序员的话。然而,这对于高效的工作是必不可少的。

  • UE4源代码是公开的,免费的。你可以通过Epic Games启动器下载源代码和调试符号。引擎将不再是一个黑匣子,你可以真正理解它是如何工作的。复制粘贴一小部分引擎代码并不少见,这通常是为了快速设置您自己的编辑器工具。
  • 如果有2个以上的程序员,建立某种“构建系统”--你需要编译C++,然后打开编辑器,而不是像在Unity中那样在编辑器中进行神奇的编译。这不是什么困难的事情,对于非程序员来说,从存储库中获取编译后的二进制文件是很棒的。这让你更容易利用下一个甜蜜的东西。
  • 这完全是可选的,但对于虚幻团队来说也很常见。忽略Epic Games启动器提供的预编译引擎,从源代码编译引擎。我们称其为“源代码构建”。
    在此之后,您可以轻松地更改引擎中的小东西-修复关键错误,向项目暴露隐藏的东西,改进您的工具和工作流。

原文:

Unreal C++ | Unreal Engine Community Wiki (unrealcommunity.wiki)

程序员灯塔
转载请注明原文链接:[翻译] 关于UE的C++
喜欢 (0)