본문 바로가기

게임프로그래밍/언리얼엔진

[Unreal 5] C++에서 게임플레이 태그 생성하고 사용하기

GAS의 핵심 시스템 중 하나인 게임플레이 태그를 C++에서 생성하고 사용하는 법을 알아보도록 하자.

 


1. GamePlay Tag 태그 선언하기

 

None C++ 클래스를 만들자.

 

그 후 기본적으로 생성되 있는 내용들은 전부 지워준다.

 

#include "NativeGameplayTags.h"

 

위의 헤더파일을 불러온다. 이제 네임스페이스에서 게임플레이 태그를 선언하고 정의할 것이다.

 

게임플레이 태그를 선언하고 사용하기 위해서는 API가 필요하다.

보통 클래스에 이런 식으로 선언되어 있다.

 

class WARRIORPRACTICE_API AWarriorBaseCharacter : public ACharacter
WARRIORPRACTICE_API 프로젝트 명에 따라 이름이 바뀌는데 이 매크로가 있어야 한다.
 
이 매크로를 사용해서 다른 클래스에서 게임플레이태그로의 접근을 가능하게 한다고 한다.
 
UE_DECLARE_GAMEPLAY_TAG_EXTERN

 

이제 위의 매크로를 사용할 것이다. 위의 매크로를 통해 게임플레이 태그를 전역 변수처럼 사용할 수 있게 해준다고 한다.

매크로명을 보면 알겠지만 선언이기 때문에 cpp 파일에서 정의도 해주어야 한다.

 

namespace WarriorGameplayTag
{
    /** Input Tags **/
    WARRIORPRACTICE_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(InputTag_Move)
    
}

 

이렇게 선언해주면 된다.


2. 게임플레이 태그 정의하기

 

이제 cpp 파일에서 실제 게임플레이 태그를 정의하자.

 

namespace WarriorGameplayTag
{
    /** Input Tags **/
    WARRIORPRACTICE_API UE_DEFINE_GAMEPLAY_TAG(InputTag_Move, "Input.Move");
}

 

매크로의 첫번째 변수는 C++에서 사용할 게임플레이 태그명이다. 두번째 변수는 에디터에서 사용할 게임플레이 태그명으로 . 을 통해 분류를 설정한다.

 

이곳에서도 마찬가지로 API 매크로를 사용해야 한다.

 

이제 컴파일을 하면 오류가 발생할 것이다. 빌드.cs에 모듈을 추가해주자.

 

"GameplayTags"

 

이렇게 추가해주면 된다.