上一章的内容都还是基础知识,游戏逻辑较为简单,语法也比价简单,主要的目的还是基础,所以没有过多的记录。
这一章会构建一个小游戏(关于关卡构建的部分这里省略掉了,是一个简单的房屋构建和光照布置,这些内容在之前的博客中有所介绍),所以会尽量记录有关c++的内容。
这一章的一章的涉及内容有:
- Classes and Object oriented programming(类和面向对象的编程).
- Components and Actors
- Pointers and memory management
- Blocking out levels in BSP
- Collisions, Trigger volumes,and Line tracing
- Input binding
关于输入绑定和关卡设计相关的在前面的文章中都有所提到。
正文:
一、项目设置和基础概念
我们重新创建一个不含初学者包的C++项目。
当引擎能显示界面时,创建成功了

我们可以在项目列表中,找到Source-Escape-Escape.cpp
1.1 Pointers+Classes
先介绍下指针:
Pointers are memory address.
pointer syntax(指针语法):
![]()
上面的三种方式都可以,我们举例子来说明,假设我们有:
AActor* SomeActor;
AActor class 有一个方法GetName(),后面会用到。
我们可以用下面的方式使用(基础):
SomeActor->GetName();
关于inheritance(继承)
在虚幻中:
举例:Character “is a” Pawn,Pawn “is an” Actor
- 一个actor拥有一个pawn的所有特征都将默认具有。
- 一个 pawn 默认拥有的任何东西,一个Actor也会在这种类型的继承中继承。
相同的例子:Dog “is a” Mammal,Mamm “is an” Animal.
1.2 Components
关于Components(组件):
组件非常适合共享共同的行为或特性。Actor可以拥有自定义组件(上一章中有提到)。
那怎样创建一个World position component。
在那之前,我们可以进入类查看器:

在里面搜索pawn,可以看到:

回到组价,我们可以随意拖入一个球体,然后选中它,添加组件,新建c++组件:

对其进行命名并且创建,我们可以在vs code的目录结构中看到:
1197




被折叠的 条评论
为什么被折叠?



