AI Guards

创建FPSAIGuard类

不需要玩家输入,删除多余的函数

 FPSAIGuard.h

#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "FPSAIGuard.generated.h"

UCLASS()
class FPSGAME_API AFPSAIGuard : public ACharacter
{
    GENERATED_BODY()

public:
    AFPSAIGuard();

protected:
    virtual void BeginPlay() override;

public:    
    virtual void Tick(float DeltaTime) override;
};

FPSAIGuard.cpp

#include "FPSAIGuard.h"

AFPSAIGuard::AFPSAIGuard()
{
    PrimaryActorTick.bCanEverTick = true;

}

void AFPSAIGuard::BeginPlay()
{
    Super::BeginPlay();
    
}

void AFPSAIGuard::Tick(float DeltaTime)
{
    Super::Tick(DeltaTime);
}

导入角色资源

创建蓝图继承自FPSAIGuard类

命名为BP_Guard

对蓝图类进行初始化,设置网格体组件和动画

在FPSGame.Build.cs添加AI模块

    PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" ,"AIModule"});

在FPSAIGuard.h定义一个人形体感应组件,可用于发现玩家人物并听到为发射物创建的声音

    UPROPERTY(VisibleAnywhere,Category="Components")
    UPawnSensingComponent* PawnSensingComp;

前向声明

class UPawnSensingComponent;

在FPSAIGuard.cpp初始化变量

PawnSensingComp = CreateDefaultSubobject<UPawnSensingComponent>(TEXT("PawnSensingComp"));

猜你喜欢

转载自www.cnblogs.com/suomeimei/p/10515641.html
AI