Setup Sight Sense

PawnSensingComp没有依据层级排序,与CharacterMovement组件类似,不是场景组件而是Actor组件,因此没有确定的位置,无法将其附加至其他组件。

  • Hearing Threshold:
  • LosHearing Threshold:
  • Sight Radius:
  • Sensing Interval:
  • Hearing Max Sound Age:
  • Enable Sensing Updates:
  • Only Sense Players:
  • See Pawns:
  • Hear Noises:
  • Peripheral Vision Angle:

调节感知组件参数

之后将使用到的两个委托

PawnSensingComp->OnSeePawn.AddDynamic(this, &AFPSAIGuard::OnPawnSeen);

绑定视觉事件OnSeePawn,添加动态函数AddDynamic

找出所需的参数,放在OnSeePawn上,按下Alt+G,找到Delegate,在代理的位置上再次按下Alt+G

参数为Pawn类型指针,由此可以得知AIGuard头文件中所需的函数类型

在头文件中声明函数

    UFUNCTION()
    void OnPawnSeen(APawn* SeenPawn);

在cpp文件中导入头文件

#include "DrawDebugHelpers.h"

为OnPawnSeen函数创建实现,让触发过程得到可视化的呈现

void AFPSAIGuard::OnPawnSeen(APawn * SeenPawn)
{
    DrawDebugSphere(GetWorld(),SeenPawn->GetActorLocation(),32.0f,12,FColor::Yellow,false,10.0f);
}

DrawDebugSphere函数生效

posted @ 2019-03-27 16:06  CodeWithMe  阅读(255)  评论(0)    收藏  举报