/
Azarel
/
Metro2
Обзор
Документация
Войти
/
Azarel
/
Metro2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Source/GameJam/Private/BTService_IsPlayerInRange.cpp
31 строка
1 KB
arseniy.mazurenko.03@gmail.com
Huge Enemy Update
29 сен 2024, 14:04
29 сен 2024, 14:04
17e3b3d
Код
Авторство
О чём код?
// Fill out your copyright notice in the Description page of Project Settings. #include "BTService_IsPlayerInRange.h" #include "Base_AIController.h" #include "EnemyBase.h" #include "Runtime/Engine/Classes/Kismet/GameplayStatics.h" #include "GameFramework/Character.h" #include "Runtime/Engine/Classes/Engine/World.h" #include "BehaviorTree/BlackboardComponent.h" UBTService_IsPlayerInRange::UBTService_IsPlayerInRange() { bNotifyBecomeRelevant = true; NodeName = TEXT("Is Player In Range"); } void UBTService_IsPlayerInRange::OnBecomeRelevant(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) { //get enemy controller and enemy auto const* const cont = Cast<ABase_AIController>(OwnerComp.GetAIOwner()); auto const* const enemy = Cast<AEnemyBase>(cont->GetPawn()); //get player charecter auto const* const player = UGameplayStatics::GetPlayerCharacter(GetWorld(), 0); //write true or false to the blackboard key depending on whether or not the player in range OwnerComp.GetBlackboardComponent()->SetValueAsBool( GetSelectedBlackboardKey(), enemy->GetDistanceTo(player) <= Range); }