Unity/Project

[Unity] 내배캠 최종프로젝트 : 루시퍼 서바이벌 20일차, 중간점검

JEE_YA 2025. 5. 2. 21:56

오늘은 중간발표였다. 우리 조는 기획자분께서 발표를 진행하셨으며 발표 전 미리 리허설을 한번 진행하셨는데.... 팀원소개보고 진짜 10분을 웃은것 같은데 실전에서도 그거 보고 빵터져서 계속웃엇다. 왜인지는 비밀

 

일단 지금까지 내가 한 것은 아래와 같다.

 

  • 잠금타일 설치 
    • TileManager 내 SetLockTileMap()
    • 플레이어가 상호작용을 통해 잠금된 공간을 풀어나가는 형식을 위한 오브젝트 배치용도
    • TileMap의 Grid 시스템을 사용해 잠금 타일 배치를 구현함
    • 배치는 타일맵의 GameObject Brush 기능을 사용하여 배치하고자 하였으나 동적으로 배치하는 방식으로 전환하였음
    • Instantiate()시 자원 오브젝트는 LockTileBlock 하위로 생성
    • 잠금타일 배치 제외처리
      • 플레이어가 처음 리스폰되는 위치와 그 주변의 6개의 타일, 총 7개는 게임 시작 시 해금된 상태로 있어야 하므로 제외처리
      • 제외 타일은 플레이어 위치 기준으로 계산하지 않고 고정된 좌표의 List로 관리하며 해당 위치에는 타일이 생성되지 않도록 하였음

 

  • 자원 배치
    • TlieManager 내 SetResourceTileMap()
    • 플레이어가 맵에서 재화를 획득하기 위한 자원을 랜덤으로 배치
    • TileMap의 Grid 시스템을 사용해 잠금 타일 배치를 구현함
    • 배치 시 resourceTileObj List에서 랜덤하게 자원 종류를 선택하여 생성, 셀마다 0~2개 사이의 자원을 Random.Range를 통해 결정하여 배치
    • Instantiate()시 자원 오브젝트는 ResourceTileBlock 하위로 생성
    • 자원 배치 예외처리
      • 플레이어가 리스폰되는 중앙 타일에는 생성하지 않음
      • 이미 생성된 자원의 위치는 usedPositions 리스트로 추적
      • 자원 셀 위치는 셀 중심 기준으로 반지름 7의 범위 내에서 GetRandomPositionInCell() 함수를 통해 랜덤 위치 지정
      • 새로 배치하려는 자원이 기존 자원과 거리 2 이하로 겹치면 무효처리, 최대 5회 재시도

 

  • 맵 생성
    • MapManager
    • List에서 맵 하나를 선택하여 배치
    • 맵은 프리펩으로 보관, 단순하게 하나만 딱 배치해주는 형식으로 진행

 

 

  • 낮, 밤 구현
    • TimeManager
    • 씬 내 낮/밤 전환, 태양/달 조명, 주변광/반사광 설정 등
    • enum으로 Day, Night을 등록하여 낮, 밤 구분
    • SetDay(), SetNight()로 상태 전환
      • 상태가 전환될 때 조명전환 코루틴 실행하여 자연스럽게 전환 (전환시간 2초)
      • 낮 활성화 시 태양(Sun) 밝기와 색상 조절, 낮동안은 달(Moon)은 비활성화
      • 밤 활성화 시 태양(Sun) 밝기와 색상 어둡게 조절, 달(Moon) 활성화
    • 낮 전투 시 스크린이펙트 적용
      • 낮 상태일 동안만 battleScreen UI의 투명도를 코루틴으로 조절하여 긴장감 형성

 


 

여기서부터는 내가 앞으로 해야할 점에 대해 개인노션에도 정리해두고 있으나 한번 더 정리하고자 한다.

 

  • 전체적인 코드 리팩토링
    • 코루틴을 이용한 부분에 대해선 수정 및 보완 필요, 또한 조금 더 코루틴에 대해 파악할 필요가 있다고 생각함
      • TimeManager 및 TileManager의 자원배치 부분
    • TimeManager
      • 스크린이펙트 오브젝트 자연스럽게 수정 및 필요 시 코루틴에서 애니메이션으로 조정 필요 
      • 밤동안 시간에 따라 그림자 조절되게 수정
  • TileManager
    • 현재 자원은 채취해도 사라지지 않지만 추후 사라지는 자원을 추가할 경우 수정 필요
  • MapManager
    • 맵 추가 및 코드 보완 (현재 맵 하나)
  • RewardManager 작성
    • 보상 내용 확인 후 작성 
    • 자원에 대해서는 확률(대성공~대실패 총 4개로 구성)조정 및 적용 필요

 

 

그리고 이제는 다같이 협업하는 시간에 공부하는건 미뤄두고 코드 작성한 다음 개인 시간에 공부해보고자 하며

일단 제일 급한건 코루틴과 델리게이트.. 그놈의 코루틴과 델리게이트는 공부해도 잘 모르겠다...ㅜㅜ

 

 

근데 사실 구현할건 많은데 당장 생각나는건 이정도다 ㅎㅎ... 생각나는게 있을때마다 추가해둬야겠다.

한건 많이 없어도 실력은 많이 늘엇다고 생각하고 앞으로도 꾸준히 열심히 하면 좋은날이 있을거라고 생각한다. 앞으로도 파이팅이다 :)