Unity - 사전합반 프로젝트 4

땡구의 개발일지·2025년 6월 24일

Unity마스터

목록 보기
48/78
post-thumbnail

간단하게 맡은 파트 기능의 프로토타입을 만들어본다. 이후 추가적인 파트 분담을 한다

오브젝트 풀

범용성을 챙기기 위해 오브젝트 풀은 PooledObject를 상속받는 게임 오브젝트면 어느 것이든 오브젝트 풀로 만들 수 있다. 시작과 동시(씬 로드)에 오브젝트 풀에서 지정한 크기만큼 채운다. 외부에서 오브젝트 풀에 저장된 것을 빼서 사용할 수 있게 public으로 함수 구현. 활성화 된 오브젝트는 일정시간, 또는 특정 조건에 따라 본인이 속한 풀로 되돌아간다.

  • ObjectPool, PooledObject 스크립트로 구현완료.

총알

총알은 PooledObject를 상속받아 구현한다. 플레이어 컨트롤러에 의해 ObjectPool에서 빼내지고, AddForce로 앞으로 발사된다.
다수의 총알을 프리팹으로 가진 경우에도 동작하도록 구현했다. 총알 하나하나가 각각의 물리처리를 하고, 스택에 설정된 돌아오는 시간에 맞춰 돌아온다. 총알은 모두 콜라이더와 Rigidbody를 컴포넌트로 가진다. constraints로 회전을 막고, useGravity=false로 중력을 사용하지 않게 막았다.

  • BulletController(총알 각각에 부착), BulletPrefabController(프리팹에 부착) 스크립트로 구현완료

플레이어

velocity 기반으로 움직인다. MVC 패턴이 적용됐다. PlayerModel로 스크립터블 오브젝트를 만든다. 여기에 있는 정보들을 PlayerController가 불러와서 사용한다. InputSystem으로 입력을 받고 처리한다. 플레이어는 오브젝트 풀을 리스트로 가질 수 있다. 이 오브젝트 풀 리스트 중, 사용하고자 하는 오브젝트 풀을 선택해서 사용한다. 이는 스테이지 진행 중 무기 업그레이드가 있을 경우 적용할 수 있다.

  • PlayerController, PlayerModel로 구현완료

UI

UI ManagerUI PopUp을 구현한다. UI Binding을 통해 쉽게 UI를 관리하는 프로세스를 만든다. 플레이어 구현 이후 작업 착수


파트 분담

시스템 기획안이 어느정도 완성됨에 따라 미리 파트를 분담했다. 여기서 핵심적인 내용들만 기록한다

씬 매니저

  • 씬 매니저는 모든 씬들을 딕셔너리로 키값은 스트링, 값은 씬으로 저장한다. 각 스테이지마다의 점수를 저장하기 위해 SceneInfo 구조체를 스크립터블 오브젝트로 만들고 이것을 가진다. SceneInfo에는 sceneName, score가 저장되고 이후 늘어날 수 있다.

게임 매니저

  • 스테이지 성공, 실패 여부와 재시작 등 여러 전체적인 기능들을 담당한다.

플레이어 매니저

  • 플레이어의 데이터를 담당하는 매니저다. 게임 매니저의 매니저 리스트에 포함되어, 세이브된 데이터가 필드로 옮겨와 진다.

캐릭터

  • 여러 다양한 필드를 가진 캐릭터들을 스크립터블 오브젝트로 만든다.

인벤토리

  • 플레이어의 데이터 중, 현재 소지중인 캐릭터들과 장비들을 리스트로 가진다.

장비

  • 여러 필드를 가지고 있는 아이템.
profile
개발 박살내자

0개의 댓글