• 개인 프로젝트
  • 도구

Ehtool

EHTool은 게임 개발에서 반복적으로 사용되는 기능을 모듈화하여 생산성을 높이기 위한 보조 도구입니다. 언어 변경, UI 제어, 리소스 관리, 데이터 파싱 등 다양한 기능을 통합적으로 제공합니다.

📁 기본 유틸리티

  • Resources 폴더 내 프리팹을 경로 기반으로 불러오는 리소스 로더
  • 싱글톤 패턴을 제네릭으로 구현하여 반복적인 객체 생성을 방지
  • 데이터 파싱 시스템: IDictionaryConnector 인터페이스를 통해 Json/XML 파서 구현
    • JsonDictionaryConnector: Newtonsoft.Json 기반 구현체
    • XmlDictionaryConnector: System.Xml 기반 구현체
    • Key/Value 형태 데이터를 Dictionary로 반환하여 일관된 접근 방식 제공

🌐 LangKit – 다국어 지원 모듈

  • 언어 설정에 따라 지정한 텍스트 값 자동 적용
  • EHText, EHTmp 등의 컴포넌트는 Key만 지정하면 해당 언어의 Value 출력
  • 옵저버 패턴 기반으로 언어 변경 시 UI 실시간 갱신
  • Json, XML 등 다양한 포맷의 언어 파일을 Resources에서 로드
    • 📂 JSON 언어 데이터 예시 보기
      {
        "btn_Close": "닫기",
        "btn_Open": "열기",
        "lbl_Score": "점수",
        "msg_Exit": "정말 종료하시겠습니까?"
      }
      ※ 위 데이터는 Key에 대응되는 지정한 번역값으로 사용됩니다.
    • 📂 XML 언어 데이터 예시 보기
      <List>
          <Element key="btn_Close" value="닫기" />
          <Element key="btn_Open"  value="열기" />
          <Element key="lbl_Score" value="점수" />
          <Element key="msg_Exit"  value="정말 종료하시겠습니까?" />
        </List>
      
      ※ 위 데이터는 Key에 대응되는 지정한 번역값으로 사용됩니다.

🧩 UIKit – UI 관리 모듈

  • GUIWindow를 상속하는 프리팹을 UIManager가 관리
  • 주요 UI 타입:
    • GUIFullScreen: 전체 화면 UI
    • GUIPopUp: 팝업 UI
  • UI 단일 인스턴스 제어 및 우선순위 기반 로직:
    • 동일 우선순위에서 새 UI가 열릴 경우 기존 UI는 비활성화
    • FullScreen UI를 닫으면 이전 UI 복원
    • PopUp은 FullScreen 위에 독립적으로 열리며 유사한 방식으로 관리됨

📌 정리

  • 게임 프로젝트 내 반복되는 구조를 재사용 가능한 모듈로 구성
  • 다양한 프로젝트에서 범용적으로 활용 가능한 유틸리티 중심
  • Json/XML 데이터 구조, UI 동적 로딩, 언어 시스템 등 핵심 기능 포함