Код для вывода сообщения на HUD, если кто-то рядом с NPC Когда игрок рядом со сферой объёма столкновения NPC, мы выведем сообщение
на HUD, которое даёт знать игроку, что говорит NPC.
Вот полное осуществление
ANPC::Prox_Implementation
:
void ANPC::Prox_Implementation( AActor* OtherActor, UPrimitiveComponent*
OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult &
SweepResult )
{
//
если актор, с которым произошло пересечение, это не игрок,
//
вы просто должны вернуться из функции
if( Cast( OtherActor ) == nullptr )
{
return;
}
APlayerController* PController = GetWorld()- >GetFirstPlayerController();
if( PController )
{
AMyHUD * hud = Cast( PController->GetHUD() );
hud->addMessage( Message( NpcMessage, 5.f, FColor::White ) );
}
}
Первое, что мы делаем в функции это
приведение OtherActor (другой актор)
(то, что появляется рядом с NPC) к
AAvatar. Приведение происходит (и не
nullptr), когда OtherActor это объект
AAvatar. Мы получаем объект HUD (что
происходит
с
прикреплением
к
контроллеру
игрока)
и
передаём
сообщение от NPC на HUD. Сообщение
появляется,
всегда
когда
игрок
находится в пределах границ красной
сферы NPC.