UE4课堂笔记——《UE4C++游戏开发入门教程!》第一期开场,C++必须了解小知识

《UE4C++游戏开发入门教程!》第一期

UE4C++游戏开发入门教程!(第一期)

学习ue4 c++可以更好理解ue4,但需要已经了解或掌握至少以下两点:

  1. 已有编程经验
  2. 了解蓝图

所以可以先学一下蓝图类的教程,对ue4的整体有个了解后再来学习c++。

环境安装

ue4编写c++,除了安装ue4外,还需要安装visual studio 2019或者安装visual studio code等开发环境。首次在ue4中选择创建c++类时,会提示安装visual studio,你可以选择vs2019 commit安装,安装完成后配置参考:
设置虚幻引擎到Visual Studio工作流前
Unreal Engine4 - visual studio 智能提示
vs安装提示:
UnrealVS扩展

ue4自带扩展,位置比如:C:\Program Files\Epic Games\UE_4.25\Engine\Extras\UnrealVS\VS2019\UnrealVS.vsix

创建一个c++项目

UE4C++游戏开发入门教程!(第一期)

  1. 随时使用ue4上的编译compile进行热编译,在老版本的ue4中,即便vs中进行了编译,在ue4里仍旧要进行一次编译
    每次修改完c++就选择一下编译。
    在这里插入图片描述

  2. c++代码里的.h.cpp分别用于定义和实现
    在这里插入图片描述

  3. 创建的c++类,默认方法与蓝图类中的默认事件一一对应
    在这里插入图片描述

  4. 蓝图类中的construction script相当于c++中的构造函数

必须了解的C++小知识

这些小知识的主要目的是为了让初学者能明白代码和虚幻引擎间的关系,真正深入了解还是要静下心好好学习。

1. 通用的概念

C++ 教程

指针、条件语句、变量、常量、函数、类等等是编程最基本的概念,这些内容请先行了解。

2. include包含文件

C++中的include 用法

  • <> 表示引入c++自带的文件
  • "" 表示引入自定义的文件
#include <iostream.h>
#include "SphereBase.generated.h"

3. .h头文件,.cpp源文件

C++头文件定义类的方法

  • .h 头文件:head缩写,作用相当于书的目录
  • .cpp 源文件:C++,即C plus plus 缩写,作用相当于书的具体内容

4. 声明定义实现三个术语

C/C++头文件与变量的声明和定义

  • 头文件里一般是“声明”,只用来说明类型和名字;
  • 源文件里是“定义”,用来设定变量和函数、分配存储空间等;
  • 实现”,就是正儿八经调用、使用这个类了。

5. 父类、子类、基类、派生类、继承

C++ | 继承(基类,父类,超类),(派生类,子类)

看字面意思就知道是层层递进的关系,父生子,父就是基,子就是派生,子继承了父的属性、方法等等。

对于UE4而言,虚幻引擎编了一堆游戏开发需要的基类,开发人员以基类的规则为参照,写自己的子类。

super是父类别名《UE4 C++ Super类型

6. 虚函数

C++虚函数详解

在函数前加上virtual就变成了虚函数,其目的是为了允许用基类的指针来调用子类的这个函数,把它理解成为了提高执行效率就行了。

如果纯虚函数只做了声明,没有定义,那么就会报错。

7. 构造函数 & 析构函数

c++构造函数详解(傻子都能看懂)
c++ 构造函数详解

就是为了初始化的,写法是函数名与类名相同,当然,一个类里可以有多个构造函数,调用的时候根据参数数量写就可以了。
有了构造这种用来初始化的函数,那么就有负责撤销和清理工作的析构函数。

8. 关键字override

C ++ 学习——关键字override
C++11 override

主要目的就是防止忘记重写虚函数。

而我们写的派生类往往都是基于虚幻引擎的基类,那么用上关键字override来尽可能减少出错。

比如派生类中写错了虚函数名,又正好没有override,那么这个写错名字的函数就作为新的函数使用了,而不是基类要求的那个函数

9. 宏

UE4入门-常见的宏-UCLASS

因为我们是进行UE4的C++开发,很多地方利用宏可以将c++和虚幻引擎更好更快地结合。

10. 模板

利用模板将相似功能的函数或类用在多个不同类型的地方,也就是编写函数的时候不再需要考虑类型,增强函数的重用性。

11. publicprotectprivate的用法

C++中关于public、protect、private的访问权限控制

  • public:外部代码可以随意访问
  • protect:外部代码无法通过该子类访问基类中的public
  • private:告诉编译器从基类继承的每一个成员都当成private,即只有这个子类可以访问

代码实例:

在后面几课将会遇到下面类似的代码,这样你就都能看懂是啥东西了。

格式为c++规定,比如继承用:、定义类函数用::

头文件.h
UCLASS()
// ASphereBase派生类继承自APawn基类
class TEST1_API ASphereBase : public APawn
{
...
public:
	// 声明构造函数,用于初始化
	ASphereBase();

	// 利用宏UPROPERTY将变量A公开到虚幻引擎中
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PropertyTest1")
		// 声明变量A
		float A;
	// 利用宏UFUNCTION将函数InputText公开到虚幻引擎中
	UFUNCTION(BlueprintCallable)
		// 声明函数InputText
		void InputText(int32 num);
	
protected:
	// 声明一个纯虚函数,且要求必须重写覆盖
	virtual void BeginPlay() override;
...
};
源文件.cpp
// 引入头文件
#include "SphereBase.h"

// 定义ASphereBase类的构造函数
ASphereBase::ASphereBase()
{
	// 初始化属性的值为true
	PrimaryActorTick.bCanEverTick = true;

	// 使用模板函数CreateDefaultSubobject,显示转换形参类型为UStaticMeshComponent
	SphereMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("SphereBaseCustom"));
	// 调用方法
	SphereMesh->SetSimulatePhysics(true);
}

// 定义InputText函数
void ASphereBase::InputText(int32 num)
{
	// 调用虚幻引擎自带的方法
	GEngine->AddOnScreenDebugMessage(-1, 5, FColor::White, FString::FromInt(num));
}

// 定义ASphereBase类的BeginPlay函数,纯虚函数因为这里被定义了,所以编译的时候就不会出错了
void ASphereBase::BeginPlay()
{
	// super表示父类,调用父类的方法
	Super::BeginPlay();	
}
...

在这里插入图片描述

  • 13
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: UE4是一种使用C++编写的游戏引擎,它提供了许多API(应用程序接口),以帮助开发者创建游戏的各种功能和特性。虽然UE4没有官方发布的中文版API文档,但是我们可以通过多种途径来获取中文版的API文档。 首先,UE4的官方文档网站提供了英文版的API文档,开发者可以在这个网站上查找和阅读相关的文档。虽然官方没有提供中文版的API文档,但是很多中文开发者社区都提供了翻译的版本。 其次,UE4开发者社区是一个非常活跃的地方,很多热心的中文开发者会将官方文档进行翻译,并在论坛或者博客上分享。通过搜索引擎可以很容易地找到这些翻译版本的API文档。 此外,还有一些第三方网站也提供了翻译的UE4 API文档。这些网站通常由知名的中文社区或者教学机构创建和维护,它们提供了非常全面和详细的中文版UE4 API文档。 总结来说,虽然UE4没有官方发布的中文版API文档,但是通过官方文档网站、中文开发者社区和第三方网站,我们可以轻松地找到中文版的UE4 API文档,以帮助我们更好地使用和开发UE4游戏。 ### 回答2: UE4(Unreal Engine 4)是一款强大的游戏开发引擎,可以帮助开发者创建沉浸式的游戏体验。UE4的API(Application Programming Interface)是一套提供给开发者使用的接口和函数库,以便于他们使用UE4进行游戏开发UE4的API中文版是一种将UE4的API文档翻译成中文的资源。这样,中文开发者就能更方便地理解和使用UE4的API了。 UE4的API中文版通常包含了UE4的各种类、函数、变量等的详细说明和用法示例。通过查阅API中文版,开发者可以了解每个类的基本信息、成员函数、属性以及如何正确使用它们来实现特定的功能。 使用UE4的API中文版,开发者可以更快地学习和掌握UE4开发技术。无论是创建游戏角色、设计游戏关卡还是实现特效,都可以通过查阅API中文版来找到需要使用的类和函数,并了解它们的正确用法。 而且,UE4的API中文版还提供了一些常用函数和类的说明和示例,帮助开发者更好地掌握UE4开发技巧和最佳实践。 总之,UE4的API中文版是一个很有价值的资源,可以帮助中文开发者更方便地学习和使用UE4进行游戏开发。通过查阅API中文版,开发者可以快速定位所需的功能和资源,并快速上手开发工作。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值