내일배움캠프/TIL

TIL260512 - Unreal

옆집히드라 2026. 5. 12. 20:26

1. 핵심 개념


  • Gameplay Tags
  • DataAsset
  • DataTables

2. 상세 내용


2.1. Gameplay Tags

[!caution] 주의
Actor Tag와 별개임

게임플레이 태그는 사용자가 정의하는 라벨이다. 라벨을 매칭하는 것으로 .을 사용하는 것으로 계층적으로 라벨을 구성하는 것이 가능하다.

IGameplayTagAssetInterface를 상속받고 태그 컨테이너 변수를 만들면 태그를 사용할 수 있다.

태그를 추가하는 방식은 다음과 같다.

  • 에디터의 프로젝트 세팅에서 수동 추가
  • Config 폴더에 ini 파일 직접 수정
  • GameplayTagTableRow행 유형을 가진 데이터테이블 에셋 로드
Edit->ProjectSettings->GameplayTags
Import Tags from Config check
Add NewGameplay Tag

태그 편집 제한

태그가 많아짐에 따라 태그의 출처나 관리 주체를 구분할 필요가 있다. 가령 엔진 기본 태그인지, 프로젝트 전용인지, 플러그인에서 쓰이는 건지 따위를 구분한다.

앞서 적은 프로젝트 세팅에서 Restrict Editing을 변경하는 것으로 사용자에 따라 태그를 수정할 수 있는 권한을 부여하면서 태그의 수정을 제한한다.

태그 매칭

소스 함수/연산 입력 파라미터 반환 값
A.1 MatchesTag A true
A.1 MatchesTagExact (or ==) A false
A.1 MatchesAny {A, C} true
A.1 MatchesAnyExact {A, C} false
A.1 MatchesAll {A} true
A.1 MatchesAllExact {A} false
{A.1, B.1} HasTag A true
{A.1, B.1} HasTagExact A false
{A.1, B.1} HasAny {A, C} true
{A.1, B.1} HasAnyExact {A, C} false
{A.1, B.1} HasAll {A, B} true
{A.1, B.1} HasAllExact {A, B} false

FGameplayTag와 같이 단일 태그는 Matches, FGameplayTagContainer와 같이 태그
컨테이는 Has를 사용한다.
매칭을 보면 작은 범주는 매칭했을 때 상위범주와 매칭해도 true로 뜬다. 이는 HasAll 매칭에서도 보이는 현상이다.

Checks if this container contains ALL of the tags in the specified container, also checks against parent tags {"A.1","B.1"}.HasAll({"A","B"}) will return True, {"A","B"}.HasAll({"A.1","B.1"}) will return False If ContainerToCheck is empty/invalid it will always return True, because there were no failed checks True if this container has ALL of the tags of in ContainerToCheck, including if ContainerToCheck is empty

특이할 점은 ContainerToCheck 비교 집합이 공집합인 경우 HasAll은 항상 True를 반환한다.

2.2. Data Asset

Data Assets in Unreal Engine | Unreal Engine 5.3 Documentation | Epic Developer Community

2.3. Data Table

언리얼 엔진의 데이터 기반 게임플레이 엘리먼트 | 언리얼 엔진 5.7 문서 | Epic Developer Community

3. 질문 및 해결 (Q&A)


  • data table vs data asset

4. 관련 문서 (Links)


'내일배움캠프 > TIL' 카테고리의 다른 글

TIL260514 - perforce  (0) 2026.05.14
TIL260513 - Unreal  (0) 2026.05.13
TIL260511 - Unreal  (0) 2026.05.11
TIL260508 - CPP  (0) 2026.05.08
TIL260507 - Quaternion  (0) 2026.05.07