工具---新建c++类---选用Actor,创造出头文件(.h,用于声明变量、函数、重写父类函数等)和源文件(.cpp,涉及到具体功能实现),客户端界面成功显示出来新建类:
Actor头文件默认方法简介:
UCLASS(): ue提供的宏,告诉引擎生成类的反射数据。且UCLASS对应的类必须继承自UOBject。
class COMBATGAME_API AMyActor : public AActor :AMyActor为类的名字(A为Actor类特征字),AMyActor : public AActor表示AMyActor继承自AActor
GENERATED_BODY() :宏,表示当前类不直接使用父类的构造函数
public:当前类的共有模块,外界可以直接访问
AMyActor():当前类的构造函数
protected:当前类的受限制模块,外界不能直接访问,子类可以访问
private:私有模块,外界与子类都不可访问
virtual void Tick(float DeltaTime) override:系统方法,实时执行,DeltaTime是两次执行Tick的间隔时间
virtual void BeginPlay() override:系统方法,在运行开始时执行一次
在头文件声明好函数后需要在源文件实现,默认的都已经实现好了。
.h代码:
// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyActor.generated.h"UCLASS()//ue提供的宏,告诉引擎生成类的反射数据。且UCLASS对应的类必须继承自UOBject
class COMBATGAME_API AMyActor : public AActor//AMyActor为类的名字(A为Actor类特征字),AMyActor : public AActor表示AMyActor继承自AActor
{GENERATED_BODY()//宏,表示当前类不直接使用父类的构造函数public: //当前类的共有模块,外界可以直接访问// Sets default values for this actor's propertiesAMyActor();//当前类的构造函数protected://当前类的受限制模块,外界不能直接访问,子类可以访问// Called when the game starts or when spawnedvirtual void BeginPlay() override;//系统方法,在运行开始时执行一次public: // Called every framevirtual void Tick(float DeltaTime) override;//系统方法,实时执行,DeltaTime是两次执行Tick的间隔时间private://私有模块,外界与子类都不可访问};
.cpp代码:
// Fill out your copyright notice in the Description page of Project Settings.#include "MyActor.h"// Sets default values
AMyActor::AMyActor()
{// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.PrimaryActorTick.bCanEverTick = true;}// Called when the game starts or when spawned
void AMyActor::BeginPlay()
{Super::BeginPlay();}// Called every frame
void AMyActor::Tick(float DeltaTime)
{Super::Tick(DeltaTime);}