01

Russ·2026년 6월 14일

FPS 좀비 게임 과제 - 분석 및 작업 계획

작성일: 2026-06-12 / 최종 수정: 2026-06-13
대상 프로젝트: FPSGame(6)

✅ 확정된 결정사항 (2026-06-13)
좀비는 3종 구성(Normal / Runner / Tank) 으로 확정 (A안).
Exploder·Shrieker는 죽은 코드 정리 시 제거 — 이펙트/사운드 연결 부담이 크고, Runner/Tank는 스탯 차이가 플레이에서 바로 보여 동작 증명이 확실함.

타입모델특징시각 구분 (코드 자동)애니메이션
NormalZombie1기본기본 크기/색Z_Walk
RunnerZombie2빠르고 약함크기 0.8배, 노란빛Z_Run (달리기)
TankZombie3느리고 강함크기 1.4배, 붉은빛Z_Walk1 (느린 재생)

과제의 "능력·모델링·애니메이션 교체" 요구를 모두 충족하는 구성 — 모델 3종 + 애니메이션 3종 모두 보유 어셋으로 해결


📁 1. 프로젝트 구조 요약

항목내용
게임 플레이 씬Assets/Scenes/MainScene.unity
씬 흐름LoginScene → LoadingScene → MainScene (3씬 구성)
핵심 스크립트Assets/Scripts/ (PlayerFire, EnemyFSM, PlayerMove, GameManager, BombAction, HitEvent, CamRotate 등 13개)
좀비 에셋FBX 3종(Zombie1/2/3) + 애니메이션(Idle/Walk/Run/Attack/Falling 등)
무기/투척 에셋M67 수류탄 모델(old/modern), 폭발·탄흔 이펙트
사운드Workshop/Audio/Rifle.wav (소총 사운드 이미 보유), 폭발음
Easy FPS 팩Assets/Easy FPS/씬에서 미사용(GUID 검색 0건). 단, GunScript.cs에 반동·조준점 벌어짐·탄창/재장전 참고 구현 보유 + 소총 모델/총구화염 에셋 포함 → 과제 2·3·4① 참고용

🎯 2. 과제 요구사항별 현황 분석

요구사항 1. 좀비 추가 — ❌ 실질 미구현 (코드 골격만 존재)

⚠️ 중요: 코드에는 5종이 있지만, 실제로는 전부 Normal 1종으로만 동작함

  • EnemyFSM.cs에 5종 타입(Normal/Runner/Tank/Exploder/Shrieker) 코드는 존재
  • 그러나 씬·프리팹 어디에도 zombieType 값이 설정되어 있지 않음 → 모든 좀비가 기본값 Normal(0번)
  • 실제 직렬화 데이터 확인 결과 (씬의 EnemyFSM):
    findDistance: 8 / attackDistance: 2 / moveSpeed: 5
    attackPower: 3 / moveDistance: 20   ← zombieType 필드 자체가 없음 = Normal 고정

→ 결과: 아래 능력들이 단 한 번도 실행되지 않는 "죽은 코드"

기능코드실제 동작미동작 이유
Runner/Tank 스탯있음ApplyTypeStats()가 Normal만 처리 → 스탯 변화 없음
독 공격있음canPoison은 Tank만 true → Normal이라 항상 false
자폭 (Exploder)있음zombieType==Exploder 조건 → 절대 진입 안 함
포효 (Shrieker)있음zombieType==Shrieker 조건 → 절대 진입 안 함
격노 모드있음⚠️타입 무관이라 유일하게 동작하나 시각 피드백 없음
  • ⚠️ 추가 미완성 사항
    • explosionEffect 미연결, 포효 사운드/이펙트 없음 → 능력이 발동해도 피드백 없음
    • 타입별 모델/색상 구분 없음, 모델도 Zombie1/2/3 3종뿐 (5타입에 부족)
    • 씬에 좀비 5마리가 고정 배치만 됨 (자동 생성 없음)

→ 단순 에셋 연결이 아니라, 타입 설정 + 능력별 피드백 구현 + 모델 분배가 모두 필요한 실제 작업

요구사항 2. 2번키 연사 소총 — ❌ 미구현 (최우선)

  • 현재 PlayerFire.cs의 2번키는 스나이퍼 줌 모드로 동작 (연사 소총 아님)
  • WeaponMode enum이 Normal/Sniper 2개뿐 → Rifle 모드 추가 + 마우스 홀드 연사 로직 필요
  • 💡 Rifle.wav 사운드가 이미 있어 연결만 하면 됨
  • 💡 Easy FPS/Scripts/GunScript.cs에 연사·탄창 참고 구현 있음 (씬 미사용 팩이지만 코드 참고 가능)

요구사항 3. 조준점(Cross-Hair) 반동 — ❌ 미구현

  • ⚠️ 현재 씬에 Crosshair UI 자체가 없음 → UI부터 제작 필요
  • 연사 시 4방향 벌어짐 + 카메라 위로 반동(recoil) 로직 신규 작성 필요
  • 💡 GunScript.csCrossHairExpansionWhenWalking()·recoil 계산이 참고 구현으로 유용
  • 카메라 위로 반동은 CamRotate.cs(마우스 회전 담당)와 연동 필요

요구사항 4. 게임성 추가 (3종 이상 필요)

항목현재 상태보유 에셋
① 수류탄 회전 / 탄창⚠️ 투척만 구현됨M67 모델, 폭발 이펙트
② Wave / 스테이지❌ 없음 (좀비 고정 배치)좀비 프리팹 3종
③ 아이템 (체력/데미지/이속)❌ 없음
④ 시간별 좀비 생성/강화⚠️ 개별 격노만 있음

🐛 분석 중 발견된 기존 버그 (수정 필요)

위치증상상태
GameManager.cs:75 CloseOptionWindow()Time.timeScale = 0f로 잘못 설정 → 옵션창 닫아도 게임 멈춤✅ 수정됨(1순위)
LoadingNextScene.cs:14매개변수 num 무시하고 씬 번호 1 하드코딩미수정(영향 적음)
EnemyFSM.cs Move()/Return()좀비가 스폰점에서 moveDistance(20) 이상 멀어지면 추격 포기하고 귀환 + 체력 풀회복 → "다가오다 도망가는" 현상⏳ 2순위에서 수정

🛠 3. 작업 우선순위

🔴 1순위 — 필수 요구사항 (✅ 코드 완료 2026-06-13, 에디터 연결 대기)

  1. 연사 소총 추가 ✅ : PlayerFire.cs에 Rifle 모드 추가됨 (2번키 → 마우스 홀드 연사)
    • 키 배치: 1=Normal, 2=Rifle(연사), 3=Sniper (기존 스나이퍼는 3번으로 이동)
  2. 조준점 반동 ✅ : Crosshair.cs 신규 작성 — 4방향 벌어짐 + 위로 튐(복원) + 탄퍼짐. CamRotate는 복원되는 반동으로 수정
    • 발사음: 모든 모드(Normal/Rifle/Sniper) 에서 재생되도록 수정 (rifleAudio 1개 연결로 공용)
    • 보너스: GameManager timeScale 버그 수정, 빌드 깨뜨리는 using UnityEditor* 2건 제거, 한글 주석 인코딩 복구

🟡 2순위 — 좀비 3종 실제 동작화 (요구사항 1, 필수 항목) — ✅ 코드 완료 2026-06-13

Wave 스포너(3순위)가 좀비 3종 프리팹을 등록해야 하므로 반드시 게임성보다 먼저 작업

  1. EnemyFSM.cs 슬림화 ✅ : Exploder/Shrieker/독/자폭/포효/Return 죽은 코드 제거, Normal/Runner/Tank 3종
  2. 도망 버그 수정 ✅ : moveDistance 리쉬 + 귀환 + 체력회복 전부 제거 → 한 번 발견하면 끝까지 추격
  3. ApplyTypeStats() 외형 자동화 ✅ : 타입별 크기(0.8/1.0/1.4)·색상(노랑/원본/빨강)·애니메이션 속도(1.5/1.0/0.7배) 자동 적용 + 격노 시 진빨강 피드백
  4. (에디터) 씬의 좀비들에 Zombie Type 지정 (아래 체크리스트 A)
  5. (선택) Animator Override Controller로 실제 클립 교체(Runner=Z_Run 등) — anim.speed 차별화로 이미 움직임은 구분됨

🟢 3순위 — 게임성 3종 이상 (요구사항 4)

  1. 소총 탄창 / 재장전 ✅ 코드완료 2026-06-14 : PlayerFire 확장 — 잔탄/예비탄 + R키 재장전 + 0발 시 자동 재장전 + 탄약 UI. Rifle·Normal 모드 모두 탄약 적용(Sniper는 무제한 ∞), 재장전 사운드(reloadSound.wav) 연결 슬롯 추가
    8b. 플레이어 피격 ouch 사운드 ✅ 코드완료 2026-06-14 : PlayerMove.DamageActionhurtAudio 추가(hit_sound.wav)
    8c. 좀비 피격 시 피 효과 ✅ 코드완료 2026-06-14 : PlayerFirebloodEffect 추가 — Enemy 명중 지점에 피 파티클 생성(2초 후 자동 제거). FBX 불필요, 보유 파티클 프리팹(CFXR2 Blood (Directional) 등) 연결만
    8d. 좀비 효과음 ✅ 코드완료 2026-06-14 : EnemyFSMzombieAudio+클립(attack/hit/die/growl) 추가 — 평상시 랜덤 그르렁(5~12초) + 공격/피격/사망 사운드. (사운드 클립은 Asset Store에서 다운 필요)
    8e. 플레이어 ouch 데미지별 3단계 ✅ 코드완료 2026-06-14 : PlayerMovehurtLight/Medium/Heavy + 임계값(3/6) — Tank/격노 강타는 강한 ouch, Runner 약타는 가벼운 ouch 자동 선택

🔊 사운드 전략(2026-06-14 확정 — 린): 오디오는 채점 항목 아닌 연출 보조 → 과투자 금지. "정보 주는 소리"에 집중.

  • 플레이어 ouch: 데미지별 3단계 (소스 1개라 안 겹침) ✅
  • 좀비: 공격/사망/그르렁 1개씩. AudioSource를 3D(Spatial Blend=1) 로 설정 → 거리감쇠로 가까운 좀비만 들림 = 떼 좀비 소음 자동 해결. 그르렁은 5~12초로 드물게.
  • 체력별 그르렁 단계는 생략(소음만 늘고 효과 약함). BGM은 조용한 베드로 나중에.
  • 좀비 떼는 웨이브로 점증(WaveManager 3→+2)해야 재밌고 요구4 어필됨 — 단 3D 사운드 필수.
  1. WaveManager.cs ✅ 코드완료 2026-06-14 : Wave별 좀비 자동 스폰(수↑) + 웨이브당 체력+15%/공격+10%/이속+5% 강화 (②+④ 동시 해결). EnemyFSMhpMultiplier/damageMultiplier/speedMultiplier 주입 필드 추가 — 스폰 시 배율 주입 → ApplyTypeStats()에서 반영
    • ⏳ (에디터) 좀비 프리팹화 + 스폰 위치 배치 + 배열 연결 필요 (아래 C 섹션)
  2. ItemPickup.cs ✅ 코드완료 2026-06-14 : 체력/공격력/이동속도 아이템 (③). 트리거 충돌 시 효과 적용 후 소멸 + 회전 연출. PlayerMove.Heal() 추가
  3. 수류탄 회전 + 던지기 세기(차지) + 폭발음 ✅ 코드완료 2026-06-14 (①)
    • BombAction: 날아가며 회전(angularVelocity) + 폭발음(explosionSound, ExplosionNoDebris 보유) + 폭발 데미지 널 안전 처리
    • PlayerFire: 우클릭 홀드 차지 — 길게=멀리(maxThrowPower 25)/짧게=가까이(min 8), 풀차지 1.2초. 던질 때 외침(throwVoice) 슬롯(선택)
    • 에디터: Bomb 프리팹의 BombActionExplosion Sound에 폭발음 클립 연결 (E 섹션)
  4. 씬에 WaveManager·아이템·Crosshair UI 배치 및 변수 연결

🎨 폴리시/완성도 (2026-06-14 추가) — 마감 임박, 싼 것만

  1. 점수 시스템 ✅ 코드완료 : GameManagerscore+AddScore()+scoreText+1점씩 카운트업(countSpeed). 명중 1회당 타입별 점수(Normal 1/Runner 2/Tank 5) — EnemyFSM.HitEnemy에서 가산. (에디터: Score UI 연결)
  2. 무기 교체 '딸칵'(#6) ✅ : PlayerFire.SetMode에서 switchSound 재생 (pullweapon.wav 보유). (에디터: 클립 연결)
  3. 피 효과 크게(#4) ✅ : PlayerFirebloodScale=2로 피 파티클 확대
  4. 아이템 획득음(#2-내) ✅ 코드 이미 있음 : ItemPickup.pickupSound — 클립만 연결하면 됨
  5. 점프 사운드(#8) ✅ : PlayerMovejumpSound(jump.wav 보유, hurtAudio 소스 재사용)
  6. BGM 1~2개(#2) : ⏳ 음악 다운(pixabay.com/music) + AudioSource Loop. 린하게 1~2개만

📐 점수 시스템 사양 (기획서용)

  • 획득 방식: 좀비에게 명중(피격) 1회당 점수 (처치 보너스 아님 — 쏠 때마다 즉시 가산해 피드백 직관적)
  • 타입별 명중 점수: Normal 1 / Runner 2 / Tank 5 (위협·난이도 비례)
  • 처치 총점(예상): Normal ≈3 / Runner ≈4 / Tank ≈40 (체력÷무기데미지 기준)
  • 연출: 표시 점수가 목표치까지 1점씩 카운트업(countSpeed=40/초) → 큰 점수도 굴러 올라가 눈에 띔
  • 경직 규칙: 피격 시 1초 경직이라 유효 명중당 1회만 점수(연사 어뷰징 방지)
  • UI: 좌상단 ScoreText("Score: N"). 우상단 설정 버튼과 겹쳐 좌상단 배치
  • 구현 위치: EnemyFSM.HitEnemy()GameManager.AddScore() / 표시는 GameManager.Update() 카운트업
  • (확장 여지) 콤보·멀티킬 배수, 정확도 보너스 등은 보류

⏸ 보류 (최후순위 — 시간 남을 때만, 마감 후순위)

  • 스나이퍼 탄약 제한 + 전용 탄약 아이템 : 스나이퍼(3번키)도 탄약 제한 두고, 스나이퍼 전용 탄약 보충 아이템 별도 추가. 현재 스나이퍼는 무제한(∞). 비용 대비 마감 우선순위 낮음 → 다른 거 다 끝나면.
  • 멀티킬/더블킬 연출, 탄피 배출 — 비용↑ 보류.

    🧊 마감 판단(2026-06-14): 요구1~4 충족 완료 = 제출 가능 수준. 폴리시는 싼 것만(딸칵/피/점프/점수/아이템음/BGM). 버림: 탄피 배출, 헤드샷(비용↑). 멀티킬은 시간 남을 때만.

요구사항 4 충족 현황: 탄창/재장전(①) 완료 + 피격사운드/피효과(연출 보강) = 이미 게임성 1종 확보. WaveManager(②④) + 아이템(③)까지 더하면 3종 이상 확실히 충족.

⚠️ 요구사항 1은 "이미 됨"이 아니라 타입 설정·피드백·모델 분배가 필요한 실제 작업임에 유의
🔁 (정정) Zombie1/2/3은 서로 다른 모델이 아니라 같은 좀비의 LOD였음 → 외형 다른 좀비는 Mixamo(Skeletonzombie T Avelange)로 추가 완료. 따라서 외형: 기존 좀비 + Mixamo 좀비 = 2종 + 타입별 색/크기 차별화
📌 우선순위 근거: 1·2순위는 필수 항목(과제 1·2·3번), 3순위는 선택지가 있는 4번. 시간 부족 시에도 필수가 먼저 완성되도록 배치


✅ 4. 내가(사용자) 직접 해야 할 것들 (Unity 에디터 작업)

아래 항목은 코드만으로는 완성되지 않고, Unity 에디터에서 직접 드래그·연결해야 하는 작업입니다.

A. 좀비 3종 적용 (요구사항 1 마무리) — 코드 완료, 아래 드래그만 하면 됨

⚠️ 에셋 재확인 결과 (2026-06-13 정정): Zombie1/2/3은 서로 다른 모델이 아니라 같은 좀비의 LOD 3단계(파일 1.27→1.03→0.84MB, 텍스처 Zombie.tga 1세트 공유). 즉 프로젝트 내 좀비 외형은 1종뿐. 군인(Soldier_demo)·FPS캐릭터는 리그(Humanoid)·애니 불일치로 좀비 사용 불가, JMO는 전부 파티클. → 헤어/착장/체중이 다른 좀비는 외부 에셋 임포트 필요.

✅ 결정: Mixamo로 외형 다른 좀비 추가 → 별도 가이드 Mixamo_좀비_추가_가이드.md 참고

  • 코드 준비됨: EnemyFSMattackByCode 옵션 추가 → Mixamo 클립에 애니메이션 이벤트 안 걸어도 타격 동작
  • Runner Mesh/Tank Mesh 슬롯은 유지(사용자 요청). 단 같은 리그 공유 메쉬에만 유효(LOD엔 효과 없음)

1) 좀비에 타입 지정 (필수)

  • Hierarchy에서 씬 좀비를 하나씩 선택 → EnemyFSMZombie Type 드롭다운 지정 (추천: Normal 2 / Runner 2 / Tank 1)

2) 타입별 다른 외형(몸 모델) 적용 (이번 요청 — 메쉬 드래그 2개)

  • Runner로 지정한 좀비의 EnemyFSMRunner Mesh 슬롯에 Zombie2 메쉬 드래그
    • (Project 창에서 Assets/Zombie/FBXs/Zombie2.FBX 왼쪽 ▶ 펼치면 나오는 Mesh 아이콘을 드래그)
  • Tank로 지정한 좀비의 EnemyFSMTank Mesh 슬롯에 Zombie3 메쉬 드래그
  • → 실행하면 Runner는 Zombie2 몸+노란빛+작게, Tank는 Zombie3 몸+붉은빛+크게로 자동 변환

3) 플레이 테스트

  • Runner/Tank가 서로 다른 몸 형태로 나오는지, 끝까지 추격하는지, 격노 시 진빨강 되는지 확인
  • ⚠️ 혹시 메쉬 교체 후 몸이 일그러지면(리그 불일치) → Runner/Tank Mesh 슬롯을 비우고, 대신 Zombie2.FBX·Zombie3.FBX를 씬에 직접 배치해 AI 컴포넌트를 붙이는 방식으로 전환 (백업 플랜)

4) (선택) 실제 애니메이션 클립 교체: Animator Override Controller로 Move 클립을 Z_Run/Z_Walk1로 교체 — anim.speed 차별화로 이미 움직임은 구분됨

크기·색상·애니속도·몸 모델까지 코드(ApplyTypeStats())가 자동 적용 → 머티리얼/프리팹 작업 없이 드롭다운 + 메쉬 2드래그로 끝

B. 연사 소총 / 조준점 (요구사항 2·3 마무리) — 코드 완료, 아래 연결만 하면 동작

  • Crosshair UI 만들기:
    1. Hierarchy에서 Canvas 우클릭 → Create Empty → 이름 Crosshair, 앵커 중앙·Pos(0,0)
    2. 그 아래 UI > Image 4개 생성: Up(폭3×높이12), Down(3×12), Left(12×3), Right(12×3), 색상 흰색
    3. Crosshair 오브젝트에 Crosshair.cs 스크립트 추가 → Up/Down/Left/Right 칸에 4개 이미지 드래그
  • Player의 PlayerFire 컴포넌트: Crosshair 칸에 위에서 만든 Crosshair 오브젝트 드래그
  • 소총 사운드: Player에 AudioSource 추가(Play On Awake 끄기) → AudioClip에 Workshop/Audio/Rifle.wav 할당 → PlayerFireRifle Audio 칸에 드래그
  • 테스트: 플레이 → 2번키 → 마우스 꾹 누르기 → ①연사 ②조준점 벌어짐 ③화면이 위로 조금씩 올라감 ④발사 멈추면 조준점 복원 확인
  • (선택) 소총 모델이 있다면 무기 전환 시 보이도록 설정 — Easy FPS/Prefabs의 소총 모델 활용 가능

B-2. 탄창/재장전 · 피격사운드 · 피효과 (요구사항 4 게임성) — 코드완료, 연결만

필요한 에셋 전부 프로젝트 내 보유 — 다운로드 불필요

탄약 UI / 재장전 사운드 (PlayerFire)

  • Canvas에 Text 생성(이름 AmmoText, 화면 우하단) → Player의 PlayerFire Ammo Text 칸에 드래그
  • (선택) Player에 AudioSource 추가(Play On Awake 끄기) → Clip = Easy FPS/Sounds/reloadSound.wavPlayerFireReload Audio 칸에 드래그
  • 인스펙터 값 확인: Rifle(30/90), Normal 권총(12/48) — 기본값 그대로 OK

플레이어 피격 ouch 사운드 (PlayerMove)

  • Player에 AudioSource 추가(Play On Awake 끄기) → Clip = Easy FPS/Sounds/playerSound/hit_sound.wavPlayerMoveHurt Audio 칸에 드래그

좀비 피격 시 피 효과 (PlayerFire)

  • PlayerFireBlood Effect 칸에 피 파티클 프리팹 드래그
    • 추천: Assets/JMO Assets/Cartoon FX Remaster/CFXR Prefabs/Liquids/CFXR2 Blood (Directional).prefab
    • 대안: Assets/Easy FPS/Prefabs/bloodEffectParticlePrefab_melee.prefab
  • 테스트: 좀비를 총으로 쏘면 명중 지점에서 피가 튀는지

테스트 (B-2 전체)

  • 1번키 권총: 발사 시 잔탄 감소 → 0이면 자동 재장전, R키 수동 재장전
  • 2번키 소총: 동일 동작 (∞은 3번 스나이퍼)
  • 좀비에게 맞으면 ouch 소리, 좀비 쏘면 피 효과

C. Wave 시스템 (요구사항 4-②④ 마무리) — 코드완료, 에디터 배치는 배경 완성 후

에디터 배치 시점: WaveManager 코드는 배경과 무관(스폰위치 Transform + NavMesh만 의존)이라 다시 수정할 일 없음. 단 스폰 위치 배치 + NavMesh 베이크는 배경 지오메트리 완성 후에 해야 재작업이 없음 → 이 섹션은 배경 작업 직후 진행
⚠️ 의존성: 좀비 사운드까지 연결한 완성 좀비를 먼저 프리팹으로 저장한 뒤 배열에 등록할 것 (안 그러면 스폰된 좀비마다 사운드 재설정 필요)

  • 완성된 좀비(사운드 포함)를 Project로 드래그해 프리팹화 (Normal/Runner/Tank/Mixamo)
  • 빈 GameObject 생성 후 WaveManager 스크립트 부착
  • 좀비 스폰 위치(Spawn Point) 빈 오브젝트 여러 개 배치 후 Spawn Points 배열에 연결
  • 스폰할 좀비 프리팹들을 Zombie Prefabs 배열에 연결
  • (선택) Wave 표시용 UI 텍스트 생성 → Wave Text/Info Text에 연결
  • (선택) 씬에 미리 배치된 고정 좀비는 비활성화(웨이브 스폰만 쓰려면) — 제거 아님, 비활성화

D. 아이템 (요구사항 4-③ 마무리) — 코드완료, 아래 에디터 작업

효과/회전/소멸은 코드가 자동. Collider(Is Trigger) + Player 태그만 맞으면 동작

  • 빈 아이템 만들기: Hierarchy 우클릭 → 3D Object → 예: Capsule (또는 Cube)
  • 그 오브젝트에 Collider의 Is Trigger 체크 (Capsule이면 Capsule Collider 기본 있음)
  • ItemPickup 스크립트 부착Item Type 드롭다운으로 종류 선택(Health/Damage/Speed)
  • (구분용) 색 머티리얼 다르게: 빨강=Health, 노랑=Damage, 파랑=Speed 등
  • ⚠️ Player 오브젝트에 Player 태그가 있는지 확인 (트리거 판정 조건)
  • 씬에 종류별로 1~2개씩 배치 → 플레이어가 밟으면 효과 + 사라지는지 테스트
  • (배경 의존) 최종 배치 위치는 배경 완성 후 조정 / 또는 좀비 처치 드롭으로 확장 가능

E. 수류탄 (요구사항 4-① 마무리) — 코드완료, 폭발음만 연결

  • Project에서 Assets/Prefabs/Bomb.prefab 클릭 → Inspector의 Bomb ActionExplosion Sound 칸에 Assets/Workshop/Audio/ExplosionNoDebris EXP022601.wav 드래그
  • (회전/차지는 코드 자동 — Spin Speed/Min·Max Throw Power는 기본값 그대로 OK)
  • (선택) "fire in the hole" 외침: 클립 있으면 Player의 PlayerFireThrow Voice 칸에 연결
  • (선택) 수류탄 탄창(개수) 표시용 UI
  • (선택) M67 모델 적용 — Assets/M67/Prefabs/에 모델 보유
  • 테스트: 우클릭 짧게=가까이 / 길게=멀리, 날아가며 회전, 터질 때 폭발음

F. 배경(야경 골목) — 분석 2026-06-14

보유 에셋 전수 확인 결과: 건물/벽/간판/거리 등 3D 환경 구조물 에셋 없음. 있는 건 이펙트/파티클(JMO), 무기(M67), 좀비, 군인(Soldier_demo, 좀비 대용 불가), 그리고 2D 배경 이미지(Materials/BackGround.png, Workshop/etc/Buildings.png = 현재 씬의 평면 배경)뿐.
→ 도톤보리 야경 골목(비주얼 중요)은 보유 에셋만으론 불가 → 에셋스토어 무료 팩 또는 기본 도형+밤 라이팅.

렌더 파이프라인: Built-in 확정 (Unity 6000.3.10f1, GraphicsSettings에 SRP 없음, manifest에 URP/HDRP 패키지 없음).
→ 에셋스토어에서 받을 땐 Built-in 호환 팩만 (URP/HDRP면 머티리얼 분홍색 깨짐).

야경 전략: 어둠+네온이 디테일 부족을 가려줌 → 앰비언트↓ + 약한 디렉셔널(달빛) + Fog + Emissive 머티리얼/컬러 라이트로 네온. JMO 파티클(글로우/연기/네온)로 분위기 보조 가능.
배경은 채점 요구(1~4)에 없음 = 완성도/가산점. 시간 부족 시 기본 도형+밤 라이팅이 안전판.

  • 배경 방식 결정 (에셋팩 / 기본도형)
  • 배경 제작 후 NavMesh 재베이크 → C 섹션(WaveManager 배치) 진행

📌 5. 핵심 요약

  1. 요구사항 2·3(연사 소총·조준점)완전 미구현 → 최우선 작업 (Easy FPS GunScript.cs 참고 구현 활용 가능)
  2. 요구사항 1(좀비) 은 코드 골격만 있고 실제로는 Normal 1종으로만 동작Normal/Runner/Tank 3종으로 확정, 죽은 코드 정리 + 시각 피드백 + 애니메이션 차별화 + 타입 설정 필요 (새 어셋 탐색 불필요)
  3. 요구사항 4 는 Wave 스포너 하나로 ②④를 동시에 해결하면 효율적 — 단, 좀비 3종을 먼저 완성해야 스포너에 등록 가능
  4. 작업 순서 = 필수(1·2·3번) 먼저, 선택지 있는 4번은 그 다음 — 시간 부족 시에도 필수 항목이 완성되도록
  5. 코드 작업과 별개로 Unity 에디터에서의 연결 작업(위 4번 항목) 이 반드시 필요함
  6. 기존 버그 2건(CloseOptionWindow timeScale, LoadingNextScene 하드코딩)도 함께 수정 권장

📂 참고: 주요 스크립트 위치

스크립트경로역할
PlayerFire.csAssets/Scripts/발사/무기 모드 (← 연사 소총 추가 대상)
EnemyFSM.csAssets/Scripts/좀비 AI/타입/능력 (← 3종 슬림화 + 시각 피드백 추가 대상)
PlayerMove.csAssets/Scripts/플레이어 이동/체력 (← 아이템 연동 대상)
BombAction.csAssets/Scripts/수류탄 폭발 (← 회전/탄창 확장 대상)
GameManager.csAssets/Scripts/게임 상태 관리 (← Wave 연동 대상, CloseOptionWindow 버그 수정 대상)
CamRotate.csAssets/Scripts/카메라 상하 회전 (← 반동(recoil) 연동 대상)
GunScript.csAssets/Easy FPS/Scripts/씬 미사용 / 반동·조준점·탄창 참고 구현
profile
해시태그 정리하기.. 시리즈 썸네일 넣기.. 클라우드 메모 정리, 해커톤 시리즈

0개의 댓글