APawn* PreviousPawn = UGameplayStatics::GetPlayerPawn(GetWorld(),0);
AController* HitActorController = Cast<APawn>(Hit.GetActor())->GetController();
//์ปจํธ๋กค๋ฌ ๋ฐ๊พธ๊ธฐ
UGameplayStatics::GetPlayerController(GetWorld(),0)->Possess(SelectedPawn);
HitActorController->Possess(PreviousPawn);
//๋ฐ๋ ์ปจํธ๋กค๋ฌ์์ ์ด๊ธฐํ&๋นํค์ด๋น์ดํธ๋ฆฌ ๋ค์ ์๋์ํค๊ธฐ
Cast<AShooterAIController>(HitActorController)->SetUpAfterPossess();void AShooterAIController::SetUpAfterPossess()
{
//ํ๋ ์ด์ด์ ํฐ์ด ๋ฐ๋๋ฉด ๋ค์ ์ ์ํด์ค์ผํ๋ฏ๋ก
PlayerPawn = UGameplayStatics::GetPlayerPawn(GetWorld(), 0);
if(AIBehavior != nullptr)
{
RunBehaviorTree(AIBehavior);
GetBlackboardComponent()->SetValueAsVector(TEXT("StartLocation"), GetPawn()->GetActorLocation());
}
}
์ค๋์ ๋์
์ด์์ด์ ๋ง์ pawn(์ธ๊ณต์ง๋ฅ์ด ์กฐ์ข ํ๋ ์ ) ์ ๋น์ํด์ ๋ด๊ฐ ์กฐ์ข ํ๊ณ ,
ํ๋ ์ด์ด์ปจํธ๋กค๋ฌ๊ฐ ๋น ์ ธ๋๊ฐ ํฐ์ ๋ค์ ์ธ๊ณต์ง๋ฅ์ด ์กฐ์ข ํ๋๋ก ํ์
์ค๋์ ํธ๋ฌ๋ธ
๋น์ํ๋๊ฑฐ๊น์ง ์ด์บ์ด์บ ๋๋๋ฐ,
๋น ์ ธ๋๊ฐ ํฐ์ด AI์ปจํธ๋กค๋ฌ๋ก ์์ง์ฌ์ผ ํ๋๋ฐ ์์์ง์
์ค๋์ ๊ตํ
ํ๋ ์ด์ด๊ฐ ๋น์ํ๋ค๊ฐ ๋๊ฐ๋ฉด AI์ปจํธ๋กค๋ฌ์ ๋นํค์ด๋น์ดํธ๋ฆฌ๊ฐ ๊บผ์ง๋๋ฏํ๋ค...
AI์ปจํธ๋กค๋ฌ์ BeginPlay์์ ๋นํค์ด๋น์ดํธ๋ฆฌ๋ฅผ ์๋ ์์ผ์คฌ์ผ๋ ๋ค์ ๋น์ํด๋ ์์์ง์๋๊ฑฐ๊ฐ์
ํน์ ๋ด๊ฐ ์๋ชป ์๊ณ ์๋๊ฑฐ ์์ผ๋ฉด ์๋ ค์ฃผ๋ผ
๋นก๋๊ฐ๋ฆฌ๋ผ ์๋ชจ๋ฆ
๋๊ธ 0