게임 플레이 태그 시스템 (GameplayTag System)

2026. 2. 19. 17:43·유니티/Framework

개요

프로젝트 전반에서 캐릭터 상태, 스탠스, 행동, 입력, 무기 타입 등 다양한 “상태/속성”을 문자열이나 enum으로 하드코딩하지 않고, 계층 구조 태그(GameplayTag) 로 통합 관리할 수 있도록 태그 시스템을 구현했습니다.
언리얼의 GameplayTag 개념처럼, 데이터 기반 + 검색/필터링 가능한 공통 식별자로 사용되는 것이 목표입니다.


왜 필요한가?

상태를 enum이나 string으로 관리하면 규모가 커질수록 다음 문제가 생깁니다.

  • 상태 종류가 늘 때마다 enum 수정 → 의존 코드가 연쇄 수정됨
  • 문자열은 오타/중복/일관성 관리가 어려움
  • “상위 개념으로 묶어서 처리”(예: State.*, Movement.*) 같은 확장이 번거로움

GameplayTag는 이를 해결하기 위해
태그를 계층 구조로 관리하고, 시스템 전반에서 동일한 방식으로 참조하도록 설계했습니다.


구성 요소

1) GameplayTag Manager(태그 관리 창)

태그를 한 곳에서 생성/편집/관리할 수 있는 에디터 창을 제공합니다.
프로젝트 전체가 공유하는 “태그 사전” 역할을 하며, 태그 추가/삭제/정리가 가능합니다.

 

2) GameplayTagFilter Attribute(인스펙터 필터링)

[SerializeField, GameplayTagFilter(true, "Stance")] private GameplayTag m_StanceTag;
[SerializeField, GameplayTagFilter(true, "State")] private GameplayTag m_StateTag;
  • "Stance"로 필터하면 Stance.* 계열만 인스펙터에서 보이도록 제한
  • "State"로 필터하면 State.* 계열만 선택 가능

즉, 데이터 입력 실수를 줄이고, 인스펙터 UX를 크게 개선합니다.


장점

  • 확장성: 태그 추가가 “코드 수정”이 아니라 “태그 사전 추가”로 해결되는 경우가 많음
  • 일관성: 전 시스템에서 동일한 식별 체계를 공유
  • 조합/분류가 쉬움: 계층 구조로 상위 개념 처리 가능 (State.*, Movement.*)
  • 에디터 안정성: GameplayTagFilter로 잘못된 태그 선택을 예방
  • 데이터 드리븐 (Data Driven) 설계에 유리: 상태/조건/규칙을 데이터로 구성 가능

 

 

'유니티 > Framework' 카테고리의 다른 글

다형성 기반 프로퍼티 시스템 (Polymorphic Property System)  (0) 2026.02.19
입력 버퍼 시스템 (Input Buffer System)  (0) 2026.02.19
Combat System - Document  (1) 2024.06.09
'유니티/Framework' 카테고리의 다른 글
  • 다형성 기반 프로퍼티 시스템 (Polymorphic Property System)
  • 입력 버퍼 시스템 (Input Buffer System)
  • Combat System - Document
_용개발
_용개발
더 나은 개발자가 되기 위한
  • _용개발
    용개발
    _용개발
  • 전체
    오늘
    어제
    • 분류 전체보기 (206)
      • 강의 내용 정리 (99)
        • 이득우의 언리얼 프로그래밍 Part1 (49)
        • 이득우의 언리얼 프로그래밍 Part2 (49)
        • 이득우의 언리얼 프로그래밍 Part3 (1)
        • 이득우의 언리얼 프로그래밍 Part4 (0)
      • C++ (35)
        • 기초 지식 (21)
        • 자료구조 (1)
        • 알고리즘 (10)
        • 코딩 테스트 (0)
        • 꿀팁 (3)
      • 언리얼 (11)
        • 기초 지식 (3)
        • 애니메이션 (7)
        • AI (1)
        • 플러그인 (0)
        • 디버깅 (0)
      • C# (0)
        • 기초 지식 (0)
        • 자료구조 (0)
        • 알고리즘 (0)
      • 유니티 (10)
        • 기초 지식 (0)
        • 애니메이션 (2)
        • 에디터 (1)
        • 최적화 (1)
        • Framework (4)
        • 문제 해결 (1)
      • CS (33)
        • 네트워크 (11)
        • 운영체제 (18)
        • 패턴 (1)
      • DirectX (6)
      • 수학 (0)
        • 설명 (0)
        • 게임 수학 (0)
      • 편리 기능 (0)
        • 프로그램 (0)
        • 플러그인 (0)
      • 면접 (0)
        • 면접 질문 리스트 (4)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

    • 유튜브
  • 공지사항

  • 인기 글

  • 태그

    Unreal #Unity #게임 #C++ #C#
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
_용개발
게임 플레이 태그 시스템 (GameplayTag System)
상단으로

티스토리툴바