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"
이렇게 추가해주면 된다.
'게임프로그래밍 > 언리얼엔진' 카테고리의 다른 글
[Unreal Engine 5] 블랜드 스페이스를 위한 방향 float 얻는 법 (0) | 2025.03.24 |
---|---|
[Unreal 5] 커스텀 인풋 컴포넌트 클래스 사용하기 (0) | 2025.03.18 |
[Unreal] TObjectPtr과 TSubclassOf의 차이 (0) | 2025.03.10 |
[언리얼엔진5] 컴파일 단계에서 원하는 템플릿 함수 타입이 맞는지 확인하기 (0) | 2025.02.25 |