- 테마: SOT Assets/Data/UI/ui_theme.csv(색 57 · 스킨 32 · 아이콘 63 · 제목 폰트) → 메뉴 TKS/Import UI Theme → Resources/UI/UITheme.asset (Runtime/UI/UITheme · UISkin · Editor/UIThemeImporter · ProjectSetup 에서도 임포트) · 화면 코드는 id 로만 묻는다(스프라이트 경로 0) - 신규 제작(B) 치환: Assets/UI/Samguk/**/<id>.png → 임포트 시 같은 id 스킨·아이콘 자동 치환(팩 보존 · 새 id = 아이콘 추가) · Tools/apply_delivery.py ui kind(md5 → Samguk/<group> · gim_* → Resources/Gimmicks/Art · ui_delivered.csv) - 공통: UiKit(카드 = BorderFrame_Round20 틴트 · 버튼 = Button01_s + 광택 · 원 · 진행 바 = Slider_Basic01 · 초상 틀 · 등급 칸 ItemFrame02 · 별 줄 · 병종 배지) · 재화 바(ResourceBar + cur_* 아이콘) · 하단 탭(선택 판 + PictoIcon) · 제목 띠 · 팝업(Popup Topber + 닫기 X) · 토스트 - 화면: 로비(키아트 04 배경 위쪽 ×1.22 · 출정·편성·연무장 아이콘) · 영웅(등급 칸 + 장비 아이콘 · 체크/알림 점 · 별 아이콘) · 편성 · 거래(배너 · 상자 아이콘) · 보물(상자 아이콘 · 포인트 배지) · 내정(보상 줄 · 도면·골드 아이콘) · 연무장 · 결과(리본 · 별) · 월드맵 스테이지 팝업만 팩(거점 kit 유지) - 전투: HUD 칩 · 턴 띠 · 원형 스킬 버튼 + 쿨 라디얼 · 유닛 체력 바 · 기믹 내구 핍 = 팩 슬라이더(월드 9-slice 사본 · 가운데 2 px) · 조준선 색 유지 - 3:4(1536×2048): 본문 비율 축소(UiFitHeight · 1080×1920 = 그대로) - 검증: 플레이모드 116/116(기존 115 + UIThemeTests 1) · 컴파일 0 · error 0 · 캡처 = DataImporter.CaptureUI(UICaptureDriver · 15장) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .claude/skills/unity-cli | ||
| Assets | ||
| Packages | ||
| ProjectSettings | ||
| Tools | ||
| .gitignore | ||
| CLAUDE.md | ||
| README.md | ||
README.md
삼국지 슬링샷 (가제) — 턴제 슬링샷 전투 프로토타입
Unity 6000.3.23f1 · 2D · 도형 플레이스홀더(아트 리소스는 별도 세션에서 제작 중).
열기·실행
- Unity Hub 로 이 폴더를 연다 (6000.3.x 권장 · 6000.0 이상이면 열림).
Assets/Scenes/Battle.unity를 열고 Play. Game 뷰는 세로(9:16) 비율 권장 — 다른 비율도 전장 전체가 보이도록 카메라가 맞춘다.- 씬이 없으면 메뉴 TKS → Setup Project 를 실행하면 설정 자산과 씬을 다시 만든다.
조작 (버튼 없음)
- 아군 유닛을 누른 채 뒤로 당겼다 놓으면 반대 방향으로 날아간다(슬링샷). 하얀 선 = 날아갈 경로, 끝의 링 = 최종 목표점. 링이 주황색이면 목표점이 적 위에 있다(명중).
- 이동과 공격은 하나의 조작이다. 경로 위에 적이 있으면 병종 규칙대로 공격한다. 주황 링이 켜진 적 = 이번 조작으로 공격하게 될 적.
- 전장(20×32)은 화면보다 넓다. 빈 곳을 드래그하면 스크롤, 마우스 휠 = 줌, 오른쪽 위 미니맵을 탭하면 그 지점으로 이동. 행동 중인 유닛은 카메라가 따라간다.
- 적은 교전 범위(스테이지별 11~12) 안에 아군이 들어와야 움직인다. 멀리 있는 부대는 자리를 지키므로 부대 단위로 각개격파할 수 있다.
- 아군 전원이 행동하면 자동으로 적군 턴이 진행된다. 보병 추가 이동만 남았을 때 빈 곳을 탭하면 건너뛴다.
- 승리/패배 화면은 탭으로 다음 전투·재도전.
- 스킬 아이콘은 자리만(초기 단계 미구현).
병종 규칙 (초안 기획 반영)
| 병종 | 경로 위 적 | 최종 목표점 명중 시 |
|---|---|---|
| 보병 | 첫 유닛(아군·적군)에 부딪히면 알까기처럼 양쪽이 즉시 튕김(상대 = 남은 힘 · 자신 = 반대로 절반) · 적이면 부딪힌 순간 공격(반격 받음) | 추가 이동 1회(이동만) |
| 기병 | 유닛을 무시하고 관통 · 경로 위 적은 모두 피해 · 아군은 지나칠 거리가 안 나오면 직전에 멈춤 | 제자리로 복귀 |
| 창병 | 첫 유닛을 튕기지 않고 밀며 함께 전진 · 적이면 피해(반격 받음) · 아군은 밀기만 | 대기 — 적군 턴에 반경 안에서 움직이는 적에게 피해 |
| 궁병 | 사거리(= 슬링샷 범위) 안의 적은 제자리 사격 · 사거리 밖 +20 % 안의 적은 들어올 만큼만 다가가 사격(반격 없음) · 더 멀면 목표점까지 이동 | 무조건 크리티컬 |
밀린 아군이 적과 닿으면 그 자리에서 공격 1회(조작마다 · 자기 행동 소모 없음). 상성: 보병 > 창병 > 기병 > 보병. 궁병은 모두에게 약함(받는 피해 1.5배) · 근접 유닛과 근접 전투하면 주는 피해 50 % · 받는 피해 +50 %(원거리 사격은 패널티 없음).
데이터(SOT)
모든 수치·영웅·스테이지는 Assets/Resources/BalanceConfig.asset 하나에 있다(Inspector 에서 조정). 코드에는 수치가 없다.
초기값 재시드: 메뉴 TKS → Reset Balance Defaults.
CLI
에이전트 작업 워크플로(열린 에디터 제어 = Unity 공식 CLI + com.unity.pipeline)는 CLAUDE.md 에 있다. 아래는 에디터가 닫혀 있을 때의 배치 실행.
# 컴파일 + 설정 자산·씬 생성 (BuildFresh = 기본값 재시드까지)
Unity.exe -batchmode -nographics -projectPath <proj> -executeMethod TKS.EditorTools.ProjectSetup.Build -quit -logFile <log>
# 플레이모드 테스트
Unity.exe -batchmode -nographics -projectPath <proj> -runTests -testPlatform PlayMode -testResults <xml> -logFile <log>
# 자동 플레이 스크린샷 실측 (GUI 에디터 · 스스로 종료)
Unity.exe -projectPath <proj> -executeMethod TKS.EditorTools.ProjectSetup.AutoPlayCapture -autoplayDir <dir> -autoplayTurns 3 -logFile <log>
구조
Assets/Scripts/Runtime/—GameBootstrap(씬 구성) ·BattleManager(턴·승패) ·ActionResolver(병종 규칙) ·Combat(피해 공식·기하 질의) ·SlingshotInput(조작·스크롤·줌) ·CameraController(넓은 전장 카메라) ·EnemyAI(교전 범위) ·BattleHUD(HUD·미니맵) ·Unit/UnitView·BoardAssets/Scripts/Editor/—ProjectSetup(자동 구성) ·BalanceDefaults(최초 시드)Assets/Tests/PlayMode/— 병종 규칙·턴 흐름·승리 판정 테스트