페이트 엑스텔라 링크류 무쌍 액션을 목표로 단독 설계·구현 중인 Unity 개인 프로젝트입니다.
Engine Unity 6 · C# · Unity DOTS (ECS)
Period 2026.05 ~
Role 단독 개발 (아키텍처·전투·맵·UI 전체)
| 유닛 종류 | 구현 방식 | 이유 |
|---|---|---|
| 잡몹 (수백 체) | Unity DOTS ECS Entity | Update 직접 호출 없이 SystemBase 병렬 처리 |
| 장수 (보스급) | MonoBehaviour + AI 입력 주입 | 복잡한 공격 패턴, 플레이어 전투 스택 100% 재사용 |
- 진영 확정 게이트 :
Vitals.FactionResolved플래그가 set되기 전까지 ECS 타겟 선정에서 제외 → 장수 초기화 전 잡몹 오인 어그로 방지
- AttackHitEmitter :
pose(origin + forward)기반 단일 히트 판정 출처. GameObject(장수·파괴물)와 ECS 잡몹을 한 번에 판정해 이원화 문제 해소 - SO_Attack_Data 기반 데이터 주도 설계
- 근접 : 타이밍·VFX·판정 범위
- 발사체 : 멀티샷·연사·관통·최대 횟수
- 장판 : 번개형(적 발밑 즉발) / 거리형 / 투척폭발형(발사체→장판) 3패턴
- Projectile_Hitbox / Field_Hitbox :
IPoolable + Addressables풀 스폰, 히트스톱·흡혈·게이지·카메라 컷인 공통 처리
- SectorGenerator : by-construction 성장 방식으로 항상 연결된 섹터 그래프를 보장 (분리된 섬 없음)
- NavBlob swap : 섹터 진입 시 전체 재베이크 없이 ECS Nav 싱글톤만 교체. 이전 섹터 Entity 파괴 + Pool 반납 자동화
- BackgroundSimulator : 비활성 섹터를 DPS 추상 모델로 매 틱 갱신 — 실체화 없이 점령 상태 유지
- 미니맵 :
SectorGenerator가MinimapModelemit →Texture2D래스터화, 플레이어 마커 러프 수렴
- 잡몹 사망 = 파괴 대신 반대 진영으로 부활 → 유닛 수 합산 항상 일정 (제로섬)
- BackgroundBattle : 링크(연결 컴포넌트) 기반으로 점령·변이·전선 흐름 결정
SO_SectorBattle_Settings: 점령 속도·Power 계수 전부 디자이너 튜닝 가능- 침식도 다이얼(0~9) : 시작 보드 초기 진영 분포 설정
문제 ECS 잡몹 수백 체가 장수(MonoBehaviour)를 타겟으로 삼을 때, 진영 주입이 완료되기 전 장수가 ECS 타겟 풀에 노출되어 전체 잡몹이 아군 장수에게 돌진하는 현상 발생
원인 장수 MonoBehaviour가 먼저 활성화되어 ECS 타겟 풀에 등록되지만, 진영(Faction) 데이터 주입은 이후 비동기로 완료됨. ECS SystemBase가 진영 무관하게 최근접 타겟을 선택해 아군 장수에게 어그로
해결 Vitals.FactionResolved 플래그 도입. 진영 주입 완료 전까지 ECS 타겟 선정에서 제외. 초기화 완료 시 플래그 set → 이후 정상 어그로. 이후 새 캐릭터 추가 시 동일 게이트만 따르면 동일하게 보장
Unity 6 / C# / Unity DOTS (ECS, Collections, Burst)
Unity AI Navigation (NavMeshAgent)
Addressables · IPoolable Object Pool
ScriptableObject 기반 데이터 아키텍처
Assets/
├── 00_Main/ # 재사용 가능한 코어 (Pool, Formula, Utility)
├── 01_Assets/ # 외부 에셋 (VFX, 모델, 텍스처)
├── 03_Scripts/ # 프로젝트 도메인 로직
│ ├── Alive/ # 캐릭터 (Player, Elite, AI)
│ ├── Combat/ # 전투 (HitEmitter, Projectile, Field)
│ ├── Sector/ # 섹터·맵·미니맵
│ └── UI/ # HUD, Minimap
├── 04_Data/ # ScriptableObject 데이터
└── 05_Prefabs/ # 프리팹