三、创建第一个C++ Actor类
“对照蓝图实现C++,更有利于学习哟”
一.创建一个Actor的蓝图类---BP_Actor




二.C++实现BP_Actor蓝图类的功能
1.创建一个c++类Cpp_Actor



创建类后,会打开IDE,跳到.cpp文件中

2.C++定义Float类型变量Money,对应蓝图中变量Money

.h文件中
public是访问修饰符,该修饰符下面定义的变量or函数的访问权限为公开.除了public之外还有private(私有)和protected(保护).暂且先将变量和函数都声明为public,后面在将这三种修饰符的区别和使用选择.
类中可以有多个访问修饰符,只要你想,可以加n个public.
类中有多个public的用途在于:可以将变量和函数的定义分开,比如访问权限公开的变量放到一个public下,访问权限公开的函数放到另一个public下,目的是为了容易阅读
3.C++定义AddMoney函数及逻辑,对应蓝图中AddMoney函数

.h文件声明函数
函数声明(.h中)的语法格式为:
返回值类型 函数名 (参数1类型 参数1名称,参数2类型 参数2名称,....);
以AddMoney为例:
这是一个返回值类型为float类型 ,函数名为AddMoney,参数类型为float,参数名为Moneyvalue的函数
函数的返回值和参数不是必须的,没有返回值的话,返回值类型写void,如:
void MyFunction();这就是一个没有返回值,并且没有传入参数的函数.
.cpp文件定义函数
函数定义(.cpp)中的语法格式为:
返回值类型 类名::函数名 (参数1类型 参数1名称,参数2类型 参数2名称,....)
{
函数逻辑;
//对于没有返回值的函数(返回值为void),下面这个return 返回值可以不写;
return 返回值;
}
4.C++实现在Tick事件中调用AddMoney函数及逻辑,对应蓝图中事件

.cpp文件c++代码对应上面的蓝图tick事件
5.C++完整代码如下
.h文件
.cpp文件
三.构建并运行C++代码


构建成功,运行项目,等待编辑器的打开...

打开编辑器之后我们就能在C++Classes路径下找到这个新建的c++类

将C++类拖入场景中并且运行


至此C++已经实现了蓝图功能

要点解析:
Cpp_Actor C++类的解析


①UCLASS宏:
该宏是UE4C++类的必要组成之一,主要用途在于修饰C++类,比如控制被其修饰的C++类能否在蓝图中可见,能否派生蓝图子类等
②C++继承方式:
C++继承父类的语法格式:class 类名: public 父类
③GENERATED_BODY宏:目前无需深入理解.
④构造函数:
创建对象时必须执行的函数,与之对应还有个析构函数.
⑤beginplay和tick函数:
C++中的Beginplay和Tick函数作用对应蓝图中的Beginplay和Tick事件
要注意的是!!!仅仅是功能相同,并不代表蓝图中的Beginplay和Tick就是这两个C++函数
⑥域解析符
::
被称为域解析符(也称作用域运算符或作用域限定符),用来连接类名和函数名,指明当前函数属于哪个类。
成员函数声明作用域语法:
返回值 类名::函数名( 参数1,参数2...)
{
//TODO
}