언리얼 엔진 - 게임 프로젝트/GAS 프레임워크 RPG 프로젝트

GameplayTags - 1) GameplayTag와 GameplayTag의 생성

monstro 2025. 7. 20. 17:49
728x90
반응형

- 개요

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를 추가할 수 있다

728x90
반응형