Core Module
FOUNDATION LAYER · KERNEL ENGINE
Core
프로젝트의 최하위 기반 계층. 게임 생명주기 관리, 핵심 인터페이스 계약, 공용 확장 메서드를 제공하며
Flow, Signals, GameModes 등
모든 상위 모듈이 의존하는 추상화 레이어입니다.
Game.cs
게임의 진입점 MonoBehaviour. GameMode 간 비동기 전환을 관리하며, 동시 전환 방지·null 검사·레퍼런스 동등성 검사 등 안전 가드를 포함합니다.
ChangeMode(IGameMode next) 모드 전환 — 현재 모드 Dispose 후 새 모드 Begin OnEnable / OnDisable UniTask CancellationToken 생명주기 바인딩 JobPipeline
리소스 정리가 필요한 시스템을 위한 추상 Disposable 기반 클래스. DisposeCore()를 강제 구현하게 하여 일관된 정리 패턴을 제공합니다.
DisposeCore() 파생 클래스가 반드시 구현하는 정리 메서드 Dispose() IDisposable 구현 — DisposeCore 위임 IStage
스테이지 계열 시스템의 기반 계약. IDisposable을 상속하여 모든 스테이지 구현체에 리소스 정리를 강제합니다.
MathExtensions
float·Vector 타입용 수학 유틸리티. Unity.Mathematics 기반의 허용 오차 비교 메서드를 제공합니다.
.zero() — 허용 오차 내 0 체크
.same(other) — 근사값 동등 비교
Object & Global
컨텍스트 인식 오브젝트 파괴 유틸리티와 전역 using 선언. 에디터/런타임 환경을 자동으로 구분합니다.
.DestroyProperly() — 에디터: DestroyImmediate, 런타임: Destroy
GlobalUsings.cs — Unity.Mathematics 전역 노출
의존성 방향 단방향 강제
Core는 다른 어떤 프로젝트 모듈도 참조하지 않습니다. 모든 의존성은 Core를 향해 단방향으로 흐르며, 이를 통해 순환 의존성을 원천 차단합니다.
안전한 GameMode 전환
Game.cs의 모드 전환은 동시 전환 방지 플래그, null 가드, 레퍼런스 동등성 검사 세 단계를 거칩니다. UniTask CancellationToken으로 OnDisable 시 자동 취소됩니다.
일관된 Dispose 패턴
JobPipeline 추상 클래스를 통해 모든 파생 시스템이 동일한 방식으로 리소스를 정리합니다. Template Method 패턴으로 정리 누락을 컴파일 타임에 방지합니다.