提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

一、创建项目以及修复编译错误

我们使用的IDE是Visual Studio2022。下面是安装时的一些选项。除了Visual Studio2022之外,还有一些其他的IDE,例如Code::Blocks,这个IDE很多欧美开发者使用。
在这里插入图片描述

然后我们来设置一些配置。
1.设置’Asset Editor Open Location’为’Main Window’,这个的作用是打开新窗口时在主窗口的旁边。如果不设置的话,那么打开一个新的窗口后,它会跳出来一个单独的窗口。
在这里插入图片描述
在这里插入图片描述

2.设置Live Coding 中的Enable Live Coding为false,即每次更改代码时,以IDE中的代码为主,然后更新到UE5中。
在这里插入图片描述

3.如果是通过’First Person’或是’Third Person’、'Top Down’等有默认的代码生成的模版生成的项目,个人喜欢将头文件中的属性的指针( * )改为TObjectPtr< T >。

如果编译出现错误,需要修改以下文件,我们需要根据UE5.4的安装路径找到这个C#文件,然后将第19行中的Catch2.version更改为"v3.4.0"。下面这个就是修改UE5源码的过程,因为在后续使用中,我们可能需要根据自己的需求,来修改UE5中的源码。
在这里插入图片描述
在这里插入图片描述

然后我们在UE5中设置IDE为Visual Studio 2022。
在这里插入图片描述

下面我们来创建一个第三人称的UE5C++的项目。
在这里插入图片描述

当创建的是一个C++项目的话,那么在这个项目的目录下会有一个.sln的文件,我们双击打开这个文件就进入到了这个项目的源码界面。
在这里插入图片描述

在第三人称项目中,当我们点击查找图标来找游戏模式蓝图文件时,并没有找到,因为这是一个C++项目。我们看这个项目的源码,可以看到有一个GameMode类。
在这里插入图片描述
在这里插入图片描述

我们看到在GameMode类的构造函数中,刚开始就引入了一个文件,这个文件其实就是第三人称项目中的玩家角色蓝图,并且这个玩家角色蓝图是继承自一个C++类,即Character类。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将玩家角色蓝图继承自C++类的好处就是,我们可以在UE5中打开这个玩家角色蓝图,然后可以看到这个玩家角色蓝图的属性可以在细节栏中进行设置,而不需要在项目源码中的Character类中修改了。因为玩家角色蓝图是继承自Character类的,所以玩家角色蓝图中的属性的值都和Character类中的属性值一一对应。不过我们根据Character类创建一个玩家角色蓝图,这样打开玩家角色蓝图后,就可以在UE5中可视化修改Character类中的属性值了。在进行UE5C++开发时,通常我们都是这样操作的。
在这里插入图片描述

刚刚我们提到了现在这个第三人称的项目中,并没有游戏模式蓝图,而只有一个GameMode的C++类。下面我们就根据GameMode类创建一个游戏模式蓝图。
我们先在UE5中创建一个Game文件夹,然后在Game文件夹下创建一个游戏模式蓝图类,这个游戏模式蓝图类继承自C++类GameMode。
在这里插入图片描述
在这里插入图片描述

双击进入到这个游戏模式蓝图类的编辑界面,我们可以修改它的细节栏中的属性。如果我们不继承GameMode类创建一个游戏模式蓝图的话,那么如果我们想要修改这个项目中游戏模式相关的设置时,就需要在源码中使用代码修改游戏模式相关的设置,这样是很麻烦的。所以我们在UE5C++开发中,一般都是按照这样的方式,基于C++类来创建蓝图,这样在蓝图中修改属性比较方便。例如此时我们在游戏模式蓝图的编辑界面中可以设置它的游戏状态类、玩家控制器类、玩家状态类、HUD类和默认pawn类等。
在这里插入图片描述

下面我们再来修改一个内容,这个内容就是我们上面说的第三个修改的地方。UE5官方推荐我们可以将C++类中定义指针变量时的方式改为使用TObjectPtr< T >来进行定义。我们只需要改头文件中的变量声明的部分即可,函数部分的指针变量等不需要改。
在这里插入图片描述

然后可以使用快捷键Ctrl + Shift + B编译项目。这样修改后运行项目没有任何的差别,但是这样修改之后,项目会更加规范了。并且UE5官方推荐我们这样做。
在这里插入图片描述

二、如果在虚幻引擎中Debug

我们使用的UE5引擎版本是5.4,当需要使用到Debug操作时,需要在安装时,勾选上Editor symbols for debugging这个插件。这里面包含了调试中的一些符号信息。如果已经安装好了5.4版本,那么可以直接在选项中添加这个插件即可。
在这里插入图片描述
在这里插入图片描述

然后我们回到第三人称C++项目的源码中,如果想要进行Debug,需要修改模式为这个选项。
在这里插入图片描述

然后我们可以在项目源码中打一些断点,然后运行项目。注意Debug时点击这个图标来运行项目。
在这里插入图片描述

三、虚幻中的C++与蓝图

下面这个是UE5中的蓝图,蓝图可以进行变量赋值、条件判断和函数调用等的操作。
在这里插入图片描述

我们要清楚,虚幻中的C++是Epic魔改的C++,并不支持C++的标准库。并且制作虚幻引擎的时候还没有C++11,所以虚幻中的C++都不是现代版本C++。
那么我们应该什么使用使用C++,什么时候使用蓝图呢?可以通过下面的C++和蓝图的特点来决定。

C++

  • C++适合编写底层操作代码,可以提供对蓝图无法访问的核心系统的控制。
  • C++适合需要实现复杂的游戏系统或功能,频繁调用的函数。
  • C++适合需要与外部交互(网络)。
  • C++适合定制功能。
  • C++容易犯致命错误,对开发人员要求较高。

蓝图

  • 蓝图适合不需要频繁修改的内容,如UI设计、游戏流程等。
  • 蓝图适合快速迭代。
  • 蓝图上手难度较低。
  • 蓝图不适合过于复杂的业务,很容易变成意大利面。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐