• 개인 프로젝트
  • 도구

Easyh

게임 개발에 사용할 수 있는 유용하고 구조화된 코드 집합으로, 게임 개발의 반복적인 작업을 최소화하고 핵심 로직에 집중할 수 있도록 돕습니다. 현재는 Unity용 모듈이 주를 이루고 있으며, Unreal용 모듈도 개발 중입니다.

EasyH: 범용 C# 모듈

  • AssetOpener: Resource를 이용한 구현체
  • Singleton: 싱글톤 템플릿
  • Unsubscriber: C# System의 IDisposable 구현체
  • DictionaryConnector: Json, XML 파일을 딕셔너리로 변환
  • Queue: StablePriorityQueue, Heap 등 큐 구현체
  • Search: BFS, A* 탐색 알고리즘
  • Spline: Hermite 곡선 계산 알고리즘

EasyH.Unity: Unity 6 특화 모듈

  • MonoSingleton: 유니티 생명 주기를 포함하는 Singleton 템플릿
  • UIKit
    • 싱글톤 패턴의 UIManager가 GUIWindow를 상속하는 프리팹의 생성, 우선순위에 따른 가시화 관리
    • 주요 UI 타입:
      • GUIFullScreen: 전체 화면 UI
      • GUIPopUp: 팝업 UI
        • 현재의 GUIFullScreen이 닫힐 때 함께 닫힘
    • UI 단일 인스턴스 제어 및 우선순위 기반 로직 제공
      • 동일 우선순위의 새 UI가 열릴 경우 기존 UI는 비활성화
      • 새 UI보다 기존 UI가 우선순위가 높은 경우 새 UI가 다음 UI로 대기
      • FullScreen UI를 닫으면 이전 UI 복원
      • PopUp은 FullScreen 위에 독립적으로 열리며 유사한 방식으로 관리됨
  • LangKit: Text, TextMeshPro UI 지원
    • 언어 설정에 따른 UI 텍스트 자동 변경 기능 구현
    • 게임에서 사용되는 언어를 key, value로 이루어지게 구성하고, Dictionary 형태로 저장된 각 언어별 사전을 불러와 게임에 번역 기능 제공
      • 언어별 사전은 Json, XML 형태로 저장하며, IDictionaryConnector를 이용하여 저장된 방식에 따라 다르게 접근 가능
      • 📂 JSON 언어 데이터 예시 보기
      {
            "btn_Close": "닫기",
            "btn_Open": "열기",
            "lbl_Score": "점수",
            "msg_Exit": "정말 종료하시겠습니까?"
        }

      ※ 위 데이터는 Key에 대응되는 지정한 번역값으로 사용됩니다. </details>

      • 📂 XML 언어 데이터 예시 보기
      <List>
            <Element key="btn_Close" value="닫기" />
            <Element key="btn_Open"  value="열기" />
            <Element key="lbl_Score" value="점수" />
            <Element key="msg_Exit"  value="정말 종료하시겠습니까?" />
            </List>
        

      ※ 위 데이터는 Key에 대응되는 지정한 번역값으로 사용됩니다. </details>

    • 옵저버 패턴을 이용하여 구현
      • LangManager에서 언어가 변경되는 경우 그 언어에 맞는 자료를 부르고, 구독하는 EHText, EHTmp에 변경 내용을 전달
      • EHText, EHTmp는 key가 지정되어 있으며, 언어가 변경되는 경우 LangManager의 알림을 받아 key에 해당하는 새로운 value가 UI에 표시
        • EHTextEditor, EHTmpEditor 구현을 통한 key 지정의 가시화 기능 제공

EasyH.Gaming: 게임 로직 특화 모듈

  • Gaming
    • TurnBased: 턴제 게임의 턴 처리
    • PathBased: 경로 기반 보드 게임의 이동 처리
  • Inventory: 스택 기반의 인벤토리 구현체

⏳ 향후 계획 (To Do)

  • 🎯 Core: 범용 C# 모듈
    • AssetOpener: System.IO를 이용한 C# 프로젝트를 위한 구현체
    • AssetOpener: Addressable Asset System을 도입한 구현체
    • ListConnector: Json, XML 파일을 리스트로 변환
    • Search: DFS 탐색 알고리즘 추가
  • ⬡ Unity: Unity 6 특화 모듈
    • SoundKit: BGM, 효과음 등을 관리하는 기능
    • EffectKit: 게임에 유용한 효과 관리 기능

EasyH.Unity

##

📁 기본 유틸리티

🌐 EHTool.LangKit: 다국어 지원 모듈

🧩 EHTool.UIKit: UI 관리 모듈

📌 정리

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