다형성 기반 프로퍼티 시스템 (Polymorphic Property System)

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

개요

게임 플레이에서 발생하는 동작(애니메이션 재생, 어빌리티 실행, 이펙트/사운드 재생, 타겟팅 등)을 공통 인터페이스를 가진 Property로 추상화하고, SerializeReference 기반 다형성 리스트로 조합할 수 있도록 설계했습니다.
즉, “이벤트/조건이 발생했을 때 무엇을 할지”를 코드가 아니라 데이터(인스펙터 설정)로 구성할 수 있는 시스템입니다.


왜 만들었나?

일반적으로 기능이 늘어날수록 이런 문제가 커집니다.

  • 이벤트마다 처리 코드가 점점 길어짐 (if/else, switch, 하드코딩)
  • 시스템 간 의존성 증가 (HitReaction이 VFX/SFX/Animation/Ability를 직접 다룸)
  • “조합 가능한 행동”을 만들기 어려움 (하나 추가할 때마다 코드 수정)

그래서 실행 단위를 Property로 분리하고, 런타임에서 Property 리스트를 순차 실행하는 형태로 바꿨습니다.


장점

1) 확장성

새로운 동작이 필요하면 BaseProperty를 상속한 새 타입만 추가하면 됩니다.
기존 시스템(피격/버퍼/어빌리티 등)을 건드릴 필요가 없습니다.

 

2) 조합성

하나의 이벤트에서도 여러 Property를 순서대로 조합할 수 있어,
연출/로직을 데이터로 빠르게 프로토타이핑할 수 있습니다.

 

3) 의존성 감소

각 시스템이 VFX/SFX/Ability를 직접 호출하지 않아도 되고,
Property가 필요한 컴포넌트만 접근하게 만들어 결합도를 낮출 수 있습니다.

 

4) 유지보수성

동작 변경이 “코드 수정”이 아니라 “리스트 구성 변경”으로 끝나는 경우가 많아져
실험/튜닝/버그 수정 비용이 줄어듭니다.


 

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

게임 플레이 태그 시스템 (GameplayTag System)  (0) 2026.02.19
입력 버퍼 시스템 (Input Buffer System)  (0) 2026.02.19
Combat System - Document  (1) 2024.06.09
'유니티/Framework' 카테고리의 다른 글
  • 게임 플레이 태그 시스템 (GameplayTag 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
_용개발
다형성 기반 프로퍼티 시스템 (Polymorphic Property System)
상단으로

티스토리툴바