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으로 따로 뽑은거 같은데 일단 기다려 보면 바뀔듯.