본문 바로가기

Unity 3D 팀 미니 프로젝트 - 🕹️ Followers_Project_Survival

@코야딩구2025. 8. 22. 20:07

👨‍🏫 프로젝트 소개

- 자원 수집, 전투, 건축, 생존, 환경 요소를 구현한 3D 액션 서바이벌 프로젝트다.
- Behavior Tree 기반 AI 시스템, 수집한 자원 기반 아이템 제작 및 건물 구축 시스템, 날씨와 환경에 영향받는 생존 스탯 시스템을 구현했다.

🔗 깃허브 링크

🎥 게임 영상

📌 클래스 구조도

- 기존에 사용하던 방식에서 벗어나 의존성 역전을 고려했다.

- 즉, 클래스에서 매니저를 직접 호출하는 구조가 아니라, 클래스가 이벤트를 발행하고 매니저가 이를 구독하는 구조로 구성했다.

📅 개발 기간

2025.08.18 ~ 2025.08.22 (5일)

📚 기술스택

- Language: C#

- Engine: Unity 2022.3.17f

- Version Control: GitHub

🧑‍🤝‍🧑 팀 역할 담당

  • 팀장 이원진:
    자원 및 NPC 스폰, 상호작용 시스템, 환경 요소에 따른 플레이어 상태 변화, NPC 대화 애니메이션, UI 전반 등
  • 팀원 정찬혁:
    적 AI 로직 구현, 적 애니메이션
  • 팀원 정대성:
    플레이어 캐릭터, 스탯, 플레이어 애니메이션
  • 팀원 김병주:
    건축, 제작 관리 로직 및 UI 구현  

✨ 구현 기능

1. 식사와 수분 관리

- 플레이어의 스탯에 허기, 갈증 요소를 추가했다.

- 물이나 음식을 섭취하면 허기와 갈증 수치를 회복한다.

2. 생존 관리 시스템

- 허기와 갈증 수치가 시간이 지남에 따라 지속적으로 감소한다.

- 두 수치 중 하나가 0이 되면 체력이 감소하도록 구현했고, 둘 다 0이 될 시 추가로 체력이 감소한다.

3. 환경 요소에 따른 플레이어 상태 변화

- 낮/밤 주기 시스템을 기반으로 플레이어의 체감 온도를 구현했다.

- 밤에는 허기 수치가 빠르게 감소하고, 낮에는 갈증 수치가 더 빠르게 소모되도록 설정하여 환경 변화가 생존 난이도에 영향을 주도록 설계했다.

4. 상호작용 시스템

- 물, 드랍 아이템, 건축물 등, 오브젝트와의 상호작용 기능을 개발했다.

- 플레이어가 상호작용이 가능하면 해당 오브젝트에 아웃라인 효과를 적용하고, 상호작용 가능 UI를 출력하여 직관적인 피드백을 제공했다.

5. 자원 수집 및 가공

- 필드에 생성된 자원 오브젝트로부터 자원을 캘 수 있다.

- 제작대를 통해 수집한 자원을 가공하여 아이템을 제작할 수 있다.

6. 자원 및 NPC 스폰 시스템

- 소환된 오브젝트의 평면 좌표를 저장하고, 기존 오브젝트와 일정 거리 이상 떨어진 위치에서만 새로운 오브젝트가 소환되도록 로직을 구현했다.

- 자원 오브젝트가 파괴될 경우 자동으로 리스폰되도록 하여 지속적인 자원 확보가 가능하다.

7. 건축 및 생존 기지 구축

- 자원을 수집하여 원하는 건축물을 지을 수 있다.

8. NPC 대화 시스템

- NPC와 상호작용하여 대화할 수 있다.

- 대화 UI에 애니메이션 효과 타이핑 연출을 적용해 몰입감을 높였다.

9. 적과의 전투

- 플레이어와 적이 서로 공격하여 데미지를 주고받을 수 있다.

- Behavior Tree 기반 AI를 적용하여 정찰, 추적, 공격 상태를 자연스럽게 전환하도록 했다.

🛠️ 트러블 슈팅 - 자원 및 NPC 스폰 시스템

문제 상황

- 자원과 NPC가 동일 좌표에 스폰되는 문제가 발생했다.

- 자원 오브젝트 위에 NPC/적이 겹쳐 스폰되어 자원 채집이 불가능하고, 이동이 방해되는 상황이 발생했다.

원인

- 자원 스폰은 평면 좌표를 관리했지만, NPC 스폰은 별도의 좌표 관리가 없었다.

- 그 결과 NPC가 자원 위치에 그대로 스폰되는 문제가 발생했다.

해결 방법

- 스폰 순서를 변경하여 NPC/적 → 좌표 저장 → 자원 스폰 시 거리 체크 후 배치하도록 수정했다.

- 자원과 NPC가 동일한 좌표 리스트를 공유하도록 하고, 일정 거리 이상 떨어진 위치에서만 스폰되도록 로직을 개선했다.

결과

- 자원과 NPC가 겹쳐 스폰되는 문제가 해결되었다.

- 플레이어가 자원에 접근할 수 있고, NPC와 자원이 정상적으로 상호작용할 수 있게 되었다.

목차