ue4-手动创建c++类

一般来说都是在Editor中 add new c++,这样加完后会自动加入到vs工程中并编译自动生成 XXX.generated.h 头文件。
也可以手动创建c++的XXX.h 和XXX.cpp,然后使用UBT直接加入vs工程中,然后编译生成XXX.generated.h 头文件。
(ps:#inclued “XXX.generated.h”编译前是不存在的,但是也要加入到XXX.h中)

目标加入这两个文件

一定要放在c++代码必须放在Source目录之下,UBT才能烧苗到并加入vs工程中

ItemInfoDatabase.h

1
2
3
4
5
6
7
8
9
10
11
12
#include "GameFramework/Character.h"
#include "ItemInfoDatabase.generated.h"

UCLASS()
class AMyChar2 : public ACharacter
{
GENERATED_BODY()

public:
// Sets default values for this character's properties
AMyChar2();
};

ItemInfoDatabase.cpp

1
2
3
4
5
6
7
8
9
#include "MySlate.h"
#include "ItemInfoDatabase.h"

// Sets default values
AMyChar2::AMyChar2()
{
// Set this character to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
}

1、加入文件前的工程结构

2、使用UBT加入到vs工程中

3、打开vs工程

4、编译运行

ItemInfoDatabase.generated.h 就会自动生成了

然后在Editor中就可以看见这个类了

附上论坛参考:

https://forums.unrealengine.com/showthread.php?3113-Must-new-c-Code-be-added-from-editor

见第10楼的解答