🧠 오늘의 핵심 정리

  • 3D 서바이벌 게임 초기 세팅 완료
  • Player 생성 및 3D 이동 구현
  • 체력·스태미나·허기 시스템 구축
  • CampFire 오브젝트를 통한 데미지 처리 및 화면 효과 추가

 

 

📚  늦은 TIL, 늦은 시작

강의를 남들보다 늦게 들은 만큼 과제 진행이 많이 뒤쳐져 있었다. 그래서 TIL을 쓸 시간도 없이 계속 공부만 했다.

확실히 3D는 2D와 결이 다르다. 생각해야 할 요소도 많고 구조도 더 복잡하게 느껴진다.

 

 

⚔️  서바이벌 게임 계획

시간이 많지 않기 때문에 욕심을 줄이고, 구현 가능한 범위 내에서 계획을 세웠다. 던전 느낌의 맵에서 몬스터를 피해 생존하는 방식으로 방향을 잡았다.

체력바, 스태미나바, 허기바를 구현하여 생존 요소를 넣고, 환경 오브젝트를 통해 데미지를 받는 구조로 설계했다.

 

 

🎮  Player 초기 세팅 & 이동 구현

CharacterManager를 싱글톤으로 구성해 Player를 전역에서 접근 가능하도록 구조를 잡았다.

PlayerController에서는 Input System을 이용해 이동, 점프, 마우스 시점 회전을 구현했다.

- Rigidbody 기반 이동 처리 (FixedUpdate) - Raycast 4방향 체크로 지면 판별 - CameraContainer를 이용한 상하 시점 제한

3D 공간에서 이동을 구현하는 것이 생각보다 까다로웠지만 기본적인 이동 시스템은 완성했다.

 

 

❤️  Condition 시스템 구축

PlayerCondition을 통해 체력, 스태미나, 허기 시스템을 분리했다.

Condition 클래스를 따로 만들어:

  • 현재 수치
  • 최대 수치
  • 패시브 감소/회복 값
  • UI fillAmount 연동

허기가 0이 되면 체력이 감소하도록 연결했고, IDamageable 인터페이스를 통해 외부 오브젝트와의 데미지 상호작용을 가능하게 만들었다.

 

 

🔥  CampFire & 데미지 처리

CampFire 오브젝트를 만들고, Trigger 범위 안에 들어온 IDamageable 대상에게 일정 주기로 데미지를 주도록 구현했다.

데미지를 받을 때는 DamageIndicator를 통해 화면이 붉게 깜빡이는 효과도 추가했다.

이 부분은 실제 생존 게임을 만드는 느낌이 들어서 꽤 재미있었다.

 

 

🧩  3D 어셋 적용

3D 어셋을 찾는 데만 5시간 이상을 소비했다. 리깅과 애니메이션이 포함된 모델을 찾는 게 쉽지 않았다.

적용이 제대로 되지 않아 Unity glTFast 패키지를 추가로 설치해 해결했다.

2D와는 또 다른 벽을 느끼는 하루였다.

 

 

📌 오늘의 회고

많이 늦었지만 그래도 기본 틀은 만들었다. 남은 기간 동안 최대한 다듬어서 제출 가능한 형태로 만들어야 한다.

남은 기간 화이팅.