언리얼 엔진 실행 후 새 프로젝트 생성
게임플레이 어빌리티 시스템은 플러그인으로 제공되기 때문에 사용 옵션을 선택해야 합니다.
C++로 시작하는 경우, GameplayAbilities를 사용하려면 프로젝트의 Build.cs 파일에 모듈을 명시적으로 추가해야 합니다.
// Gameplay Ability System에 필요한 모듈을 추가합니다. ("GameplayAbilities", "GameplayTags", "GameplayTasks")
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "GameplayAbilities", "GameplayTags", "GameplayTasks" });
추가적으로 이후 개발을 위해 폴더를 만들어서 여러 클래스들을 정리할텐데 미리 헤더의 Include 경로를 추가해주면 편하다.
// 모듈의 기본 경로를 설정합니다. (나중에 C++ 파일들을 폴더에 추가할 때 경로를 자동적으로 인식하도록 합니다.)
PublicIncludePaths.AddRange(new string[] { "YourProjectName" });
블루프린트의 경우, Attribute Set을 제외한 나머지 기능들은 모듈 추가 없이 어느정도 사용은 가능하다.
GAS 플러그인에서는 디버깅 모드를 통해 액터의 상태나 정보를 알 수 있도록 해주는 커맨드가 존재한다.
이를 위해 2가지의 사전 작업이 필요하다.
[/Script/GameplayAbilities.AbilitySystemGlobals]
bUseDebugTargetFromHud=true
이후
Console에 Showdebug abilitysystem을 입력하거나 실행할 때 자동으로 커맨드를 실행하도록 한다.
// YourCharacter.h
virtual void PossessedBy(AController* NewController) override;
// YourCharacter.cpp
void AYourCharacter::PossessedBy(AController* NewController)
{
Super::PossessedBy(NewController);
// 디버그용: abilitysystem 디버그창 띄우기
if (APlayerController* PlayerController = Cast<APlayerController>(NewController))
{
PlayerController->ConsoleCommand(TEXT("ShowDebug abilitysystem"));
}
}
해당 사진처럼 디버그모드까지 활성화가 되면 완료된 것이다.
디버깅 모드는
게임을 실행한 후 따옴표키(')를 누르면 Gameplay Debugger가 더 쉽게 실행된다.
숫자 3를 누르면 Gameplay Ability System에 대한 디버그 정보도 확인이 가능하다.