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,,FColor::Yellow,false,10.0f);
}
DrawDebugSphere函数生效