Behavior Tree와 EQS까지 같이 배울 수있는 트렉이 유튜브에 있으니 확인하면 좋다.
대부분 AI 관련 모듈은 기본적으로 들어있지 않아서, 추가를 해줘야한다.
게임이름.Build.cs 파일 안에 세가지 모듈을 추가해주면 별 문제 없을 것이다.
PublicDependencyModuleNames.AddRange 리스트 맨 뒤에 “AIModule”, “NavigationSystem”, “GameplayTasks” 을 추가하면 된다.
// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
public class TEST : ModuleRules
{
public TEST(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "AIModule", "NavigationSystem", "GameplayTasks" });
}
}
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "AIModule", "NavigationSystem", "GameplayTasks" });
AI PerceptionComponent는 AIController에 이미 들어있음. 그래서 추가 안해줘도됨.
https://docs.unrealengine.com/en-US/API/Runtime/AIModule/AAIController/index.html
나중에 NavigationSystem 관련 기능 불러 쓸 때, 4.20 버전 이후부터는 아래처럼 호출해야함.
#include "MyBTTaskNode.h"
#include "NavigationSystem.h"
EBTNodeResult::Type UMyBTTaskNode::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory)
{
UNavigationSystemV1* navSys = UNavigationSystemV1::GetRandomPointInNavigableRadius();
return EBTNodeResult::Type();
}
UNavigationSystem 자체도 사용은 가능하나 아직 기능구현이 얼마 안된듯 하다. Deprecated 시키기 위해서 V1으로 따로 뽑은거 같은데 일단 기다려 보면 바뀔듯.