- 개요
GameplayTag는 열거형이지만 다양한 목적으로 사용하는 열거형이다
GameplayTag를 통해 오브젝트의 상태나 Attribute를 정의할 수 있고,
또 특정한 GameplayTag를 활성화하여 Event를 발생시키거나 GE를 적용할 수 있다
GameplayTag는 계층적 구조를 갖는데, ParentTag.ChildTag.GrandChildTag와 같이
온점(.)을 통해 Tag의 부모와 자식 관계를 정의할 수 있다
GameplayTagContainer는 여러개의 GameplayTag를 저장하는 용도로 사용한다
따라서 여러개의 Tag를 가진 요소를 구현하는 경우, GameplayTagContainter를 통해 Tag를 관리한다
GameplayTagManager는 싱글톤 클래스로 동작하며
프로젝트의 요소에 GameplayTag를 부여하거나, 부여된 GameplayTag를 관리하는 용도로 사용한다
GameplayTag를 가진 대상이 ASC를 갖고 있는 경우에 IGameplayTagAssetInterface를 상속받게 하여
대상의 GameplayTag에 접근하여 Tag에 따른 특수한 동작을 수행하도록 설계할 수 있다
구현이 가능한 함수는 다음과 같다
- GetOwnedGameplayTags 함수 : 대상 Actor가 갖고 있는 GameplayTag 목록을 반환
- HasMatchingGameplayTag 함수 : 대상 Actor가 특정한 GameplayTag를 소유하고 있는지 확인
- HasAllMatchingGameplayTags 함수: 대상 Actor가 특정 게임플레이 태그들을 모두 소유하고 있는지 확인
- HasAnyMatchingGameplayTags 함수: 대상 Actor가 특정 게임플레이 태그들 중 하나라도 소유하고 있는지 확인
- GameplayTag의 추가
GameplayTag를 추가하는 방법은 여러가지 방식이 있는데,
그 중에서 에디터를 사용하여 추가하는 방법과 Data Table 애셋을 통해 추가하는 방법을 알아본다
1) 에디터를 통해 GameplayTag 추가


에디터에서 GameplayTag와 추가한 Tag에 대한 설명,
마지막으로 Tag를 저장할 ini 파일을 지정하여 Tag를 추가할 수 있다
2) Data Table 애셋을 통해 추가

Data Table 중에서 GameplayTagTableRow를 생성하여 정의한다

Gameplay Tag Table List에서 정의한 Data Table 애셋을 추가하여 GameplayTag를 추가할 수 있다
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| GameplayTags - 3) DataTable에 정의된 Tag 사용하기 (0) | 2025.07.25 |
|---|---|
| GameplayTags - 2) GameplayEffect와 GameplayTag (0) | 2025.07.20 |
| GameplayEffect - 최종) AttributeSet의 변경 이전과 이후 핸들링 + 커브 테이블의 사용 (0) | 2025.07.18 |
| GameplayEffect - 3) Infinite GameplayEffect와 GE 적용 / 제거 (0) | 2025.07.18 |
| GameplayEffect - 2) Stacking을 통한 중첩 Effect (0) | 2025.07.18 |