From 8561fab0a2555b1c56e81a9ac228af4c32f7f4ec Mon Sep 17 00:00:00 2001 From: jongjae0305 Date: Wed, 24 Jun 2026 11:28:25 +0900 Subject: [PATCH] Update project handoff docs --- README.md | 92 ++++++++++++++++++++++++++++++++++++++++-------- desing.md | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 180 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 7609c92..b6596e9 100644 --- a/README.md +++ b/README.md @@ -232,26 +232,88 @@ ## 현재 구현 상태 -현재까지 반영된 주요 작업은 다음과 같습니다. +현재 프로젝트는 기존 단순 러너에서 여행 튜토리얼 러너 형태로 확장 중입니다. -- 게임 속도 증가 시스템 기초 추가 -- `ScrollingObject`가 `GameManager.gameSpeed`를 반영하도록 변경 -- 오른쪽 클릭 슬라이딩 기초 구조 추가 +반영된 주요 기능은 다음과 같습니다. + +- `GameManager.gameSpeed` 기반 속도 증가 시스템 +- `ScrollingObject`가 `speed * gameSpeed * Time.deltaTime`으로 이동하도록 변경 +- 기본 목숨 3개 시스템 +- 장애물 충돌 시 즉사 대신 목숨 감소 +- 충돌 시 속도 감소 +- 충돌 후 짧은 무적 시간과 깜빡임 처리 +- 오른쪽 클릭 유지 슬라이딩 +- 슬라이딩 중 점프 금지 +- 점프 중 슬라이딩 금지 +- 2단 점프 유지 - 플레이어 콜라이더를 `CapsuleCollider2D` 기반으로 변경 -- 슬라이딩용 `JJ_Slide` 스프라이트 시트 추가 +- 슬라이딩 시 캡슐 콜라이더 크기, 위치, 방향 변경 +- 슬라이딩 애니메이션용 스프라이트 시트 추가 +- 높은 장애물/슬라이딩 장애물 추가 +- 발판 밑에 매달린 형태의 슬라이딩 장애물 패턴 추가 +- 발판 프리팹에 낮은 장애물, 슬라이딩 장애물, 마일리지 배치 패턴 연결 +- `MileagePickup` 기반 마일리지 획득 처리 +- 스테이지 중 획득 마일리지와 누적 보유 마일리지 표시 +- 첫 시작 초기 마일리지 지급 +- 튜토리얼 모드용 순서 기반 발판 스폰 +- 튜토리얼 안내 문구 표시 +- 여권 느낌의 왼쪽 HUD 런타임 생성 +- 캐릭터 얼굴, 목숨 도장, 아이템 슬롯 UI 부품 적용 +- 오른쪽 상단 점수/마일리지/속도 텍스트 축소 배치 +- 공항 튜토리얼용 발판/천장 타일 이미지 추가 +- 기존 공항 배경 느낌을 길게 만든 `Sky_AirportLong.png` 추가 + +최근 커밋 기준: + +```text +d4ab621 Add airport tutorial assets and long background +``` + +## 현재 확인된 문제 + +가장 먼저 확인해야 할 문제는 배경입니다. + +의도한 방향은 기존 공항 사진 느낌의 `Sky.png`를 바탕으로, 반복이 덜 보이도록 긴 배경 이미지 `Assets/Sprites/Backgrounds/Sky_AirportLong.png`를 사용하는 것입니다. + +디스크의 `Assets/Sence/Main.unity`에는 다음 설정이 들어가 있습니다. + +- `Background/Sky`와 `Background/Sky (1)`가 긴 배경 스프라이트를 참조 +- 배경 한 장의 크기: `81.92 x 10.24` +- 두 번째 배경 위치: `x = 81.92` +- 두 배경을 루프시키기 위해 `BackgroundLoop` 사용 + +하지만 Unity 에디터에서 열려 있는 씬 메모리가 외부에서 수정한 씬 파일을 즉시 다시 읽지 않아, 실제 플레이 화면에서는 배경이 제대로 보이지 않는 문제가 확인되었습니다. + +다음 스레드에서 먼저 할 일: + +1. Unity에서 `Main` 씬을 다시 열어 디스크의 씬 변경 사항을 에디터에 반영한다. +2. `Background/Sky`, `Background/Sky (1)`의 Sprite가 `Sky_AirportLong`인지 확인한다. +3. 두 오브젝트의 BoxCollider2D 크기가 `81.92 x 10.24`인지 확인한다. +4. `Background/Sky (1)`의 위치가 `x = 81.92`인지 확인한다. +5. 게임 뷰에서 배경이 보이는지 캡처로 확인한다. ## 다음 개발 우선순위 -1. 목숨 3개 시스템 추가 -2. 장애물 충돌 시 즉사 대신 목숨 감소 처리 -3. 충돌 시 현재 속도 감소 처리 -4. 충돌 후 짧은 무적 시간 추가 -5. 슬라이딩 충돌 판정과 애니메이션 연결 확인 -6. 높은 장애물 추가 -7. 목표 거리와 제한 시간 기반 스테이지 클리어 구조 추가 -8. 패턴 기반 맵 생성 구조 설계 -9. 마일리지와 면세점 기초 구현 -10. 기념품 수집 화면 기획 및 구현 +1. 배경 표시 문제 해결 +2. 공항 발판/천장 타일의 크기와 콜라이더 최종 점검 +3. 낮은 장애물은 점프, 매달린 표지판은 슬라이딩으로 명확히 구분 +4. 마일리지 토큰 크기, 위치, 콜라이더 재점검 +5. 튜토리얼 패턴의 간격과 난이도 조정 +6. 목표 거리와 제한 시간 기반 클리어 구조 추가 +7. 면세점 화면의 실제 UI 구현 +8. 구매 아이템의 보유/사용 구조 구현 +9. 일본 1스테이지용 패턴과 에셋 적용 +10. 기념품 수집 화면 기초 구현 + +## 새 스레드 인수인계 메모 + +새 Codex 글에서 이어갈 때는 이 순서로 보면 됩니다. + +1. `README.md`의 `현재 확인된 문제`를 먼저 읽는다. +2. `desing.md`의 `최신 구현용 에셋 상태`와 `튜토리얼 배경 최신 결정`을 확인한다. +3. Unity 브리지가 연결되면 `Background/Sky`와 `Background/Sky (1)`의 현재 에디터 상태를 확인한다. +4. 에디터 상태가 씬 파일과 다르면 Unity에서 `Main` 씬을 다시 열거나, 에디터에서 배경 오브젝트 값을 직접 맞춘다. +5. 배경이 해결된 뒤에 발판/장애물/마일리지 위치 조정을 진행한다. ## 최종 목표 diff --git a/desing.md b/desing.md index 01f1b37..edecba6 100644 --- a/desing.md +++ b/desing.md @@ -381,3 +381,106 @@ UI 아이콘은 텍스트 없이 의미가 읽히는 심볼 중심으로 사용 - `Assets/ConceptArt/stage_result_screen_concept_01.png` - `Assets/ConceptArt/souvenir_collection_screen_concept_01.png` - `Assets/ConceptArt/gameplay_effects_concept_01.png` + +## 최신 구현용 에셋 상태 + +현재 실제 씬과 런타임 코드에서 사용하는 구현용 에셋은 다음과 같다. + +### 여권 HUD 부품 + +런타임에서 `GameManager`가 `Resources.Load()`로 불러와 왼쪽 HUD를 만든다. + +실제 사용 파일: + +- `Assets/Resources/UI_PassportPanel.png` +- `Assets/Resources/UI_JJ_Face.png` +- `Assets/Resources/UI_LifeStamp.png` +- `Assets/Resources/UI_PassportItemSlot.png` + +사용 방향: + +- 왼쪽 상단은 여권 느낌의 상태 패널로 사용한다. +- 캐릭터 얼굴, 목숨, 소지 아이템 슬롯을 한곳에 묶는다. +- 목숨은 텍스트가 아니라 도장 이미지로 표시한다. +- 피해를 입으면 해당 목숨 도장을 회색으로 바꾼다. +- 아이템 슬롯은 기본 1칸에서 가방 업그레이드에 따라 최대 3칸까지 활용할 계획이다. + +### 공항 튜토리얼 발판/천장 에셋 + +기존의 에스컬레이터 느낌은 튜토리얼 발판과 맞지 않아 사용하지 않는다. 공항 내부 바닥/천장처럼 읽히도록 대리석 또는 타일 느낌으로 정리한다. + +실제 사용 파일: + +- `Assets/Sprites/ObstacleSkins/Skin_Platform_AirportFloorTile.png` +- `Assets/Sprites/ObstacleSkins/Skin_Platform_AirportCeiling.png` + +사용 방향: + +- 아래 발판은 공항 바닥 타일 느낌으로 사용한다. +- 위쪽 슬라이딩 장애물의 기준 발판은 천장 또는 매달린 구조물 느낌으로 사용한다. +- 슬라이딩 장애물 자체는 공항 표지판처럼 보이게 유지한다. +- 낮은 장애물은 캐리어/짐 더미처럼 보여야 한다. +- 플레이어가 한눈에 `짐 더미 = 점프`, `매달린 표지판 = 슬라이딩`으로 이해해야 한다. + +### 긴 공항 배경 에셋 + +최신 방향은 새로 그린 화려한 배경을 쓰지 않고, 기존 공항 사진 느낌을 유지하는 것이다. 대신 반복이 덜 보이도록 최대한 긴 배경으로 만들어 사용한다. + +실제 사용 파일: + +- `Assets/Sprites/Backgrounds/Sky_AirportLong.png` + +제작 기준: + +- 원본 `Assets/Sprites/Sky.png`의 공항 사진 느낌을 유지한다. +- 기존 원본에서 눈에 거슬리던 흰색 경계선을 줄이기 위해 안전한 내부 영역을 사용한다. +- 긴 이미지를 만들어 배경 반복 주기를 늦춘다. +- 게임 플레이 중 배경이 너무 화려하면 장애물과 마일리지 가독성이 떨어지므로, 배경은 밝지만 주인공이 되면 안 된다. + +현재 의도한 씬 설정: + +- `Background/Sky`: 위치 `x = 0` +- `Background/Sky (1)`: 위치 `x = 81.92` +- 두 오브젝트 모두 Sprite는 `Sky_AirportLong` +- 두 오브젝트 모두 BoxCollider2D 크기는 `81.92 x 10.24` +- 두 오브젝트 모두 `BackgroundLoop`로 왼쪽 이동 후 오른쪽으로 재배치 + +현재 확인된 문제: + +- 디스크의 `Main.unity`에는 긴 배경 설정이 들어가 있으나, Unity 에디터가 열린 씬 메모리에 외부 변경을 즉시 반영하지 않아 플레이 화면에서 배경이 제대로 나오지 않을 수 있다. +- 새 스레드에서 가장 먼저 Unity의 실제 에디터 상태와 씬 파일 상태가 같은지 확인해야 한다. + +## 튜토리얼 배경 최신 결정 + +튜토리얼 배경은 다음 원칙으로 간다. + +- 기존 공항 사진 느낌을 유지한다. +- 새로 생성한 화려한 공항 일러스트 배경은 사용하지 않는다. +- 반복이 어색하지 않도록 배경 이미지를 최대한 길게 만든다. +- 배경은 플레이 흐름을 방해하지 않게 낮은 대비로 유지한다. +- 바닥과 천장은 공항 대리석/타일 계열로 정리한다. +- 게임 오브젝트와 마일리지 토큰은 배경보다 더 선명해야 한다. + +## 다음 이미지/시각 작업 + +다음에 이어서 할 시각 작업은 다음 순서가 좋다. + +1. 배경 표시 문제를 먼저 해결한다. +2. 배경이 정상 표시되면 밝기와 대비를 낮춰 눈의 피로를 줄인다. +3. 발판과 천장 타일의 크기, 반복감, 콜라이더 위치를 맞춘다. +4. 캐리어 장애물은 점프용이라는 인상이 더 강하게 보이도록 정리한다. +5. 매달린 표지판 장애물은 슬라이딩용이라는 인상이 더 강하게 보이도록 정리한다. +6. 마일리지 토큰은 크기를 줄이고, 플레이어가 지나가는 루트에 맞춰 배치한다. +7. 여권 HUD는 현재 부품을 유지하되 실제 아이템 보유 상태와 연결한다. + +## 새 스레드 인수인계 메모 + +이 파일 이름은 현재 `desing.md`로 되어 있다. 오타처럼 보이지만 기존 대화와 커밋 흐름에서 이 이름을 사용했으므로, 당장 이름을 바꾸지 않고 유지한다. + +새 스레드에서 이어갈 때는 다음을 먼저 확인한다. + +- `README.md`의 `현재 확인된 문제` +- 이 파일의 `긴 공항 배경 에셋` +- `Assets/Sence/Main.unity`의 `Background/Sky`, `Background/Sky (1)` 설정 +- Unity 에디터에서 실제로 보이는 배경 상태 +- `Captures/latest.png` 또는 새 게임 뷰 캡처