Unreal5 공부/TIL
2026/05/08 TIL
anna59
2026. 5. 8. 22:21
BTTask로 랜덤이동 구현
적 없음->플레이어 주변 랜덤 위치로 이동
1. PlayerActor 위치 가져오기
2. 주변 랜덤 위치 찾기 (NavigationSystem 활용)
3. 해당 위치로 이동
Unreal에서 NavMesh 위의 랜덤 위치를 찾는 함수
cpp
#include "NavigationSystem.h"
UNavigationSystemV1::GetRandomReachablePointInRadius(
GetWorld(),
PlayerLocation, // 중심점
500.f, // 반경
RandomLocation // 결과 저장
);
델리게이트
C++ 형태로 1대1 지원
DECLARE_DELEGATE
C++ 1대 다수
DECLARE_MULTICAST
C++ 1대 1 블루프린트 지원
DECLARE_DYNAMIC
C++ 1대 다수 블루프린트 지원
DECLARE_DYNAMIC_MULTICAST
바인드 되기 전까지 1바이트도 차지 않는다! -> 사용시 느려짐. 거의 바인딩 되지 않을 시 효율적
DEACLARE_SPARSE
소스 파일 폴더 구조 정리
Character public
AllyAI
보스몬스터
HUD 테스트, 탄창 임무선택화면
HUD 미션 진행상황 출력해야될 것 같음
미션 상태를 만들어야될 것 같다.
구성을 어떻게 할지
CreateDefaultSubobject -> 생성자에서만 쓸 것!
void AItemBase::BeginPlay()
{
Super::BeginPlay();
ACharacter* PlayerCharacter = UGameplayStatics::GetPlayerCharacter(GetWorld(), 0);
if (PlayerCharacter)
{
UMyActorComponent* HealthComp = PlayerCharacter->FindComponentByClass<UMyActorComponent>();
if (HealthComp)
{
HealthComp->OnHealthDead.AddDynamic(this, &AItemBase::PlayerDeathReceive);
}
else
{
//안됐다....
}
}
}
void AItemBase::PlayerDeathReceive(AController* InstigatorController)
{
Destroy();
}
