📌 오늘 학습한 내용
오늘은 프로젝트의 핵심 시스템 중 하나인 미션(Mission)과 기믹(Gimmick) 시스템의 구조를 개선하고, 새로운 미션 유형과 아이템들을 추가로 구현했습니다. 특히 객체 간의 결합도를 낮추는 리팩토링에 집중했습니다.
미션 통합 : 구현된 미션들 중 석상 돌리기, 상자 열기, 물건 옮기기의 정답 로직이 '모든 Gimmick의 상태가 Completed가 되기'로 동일하여 하나의 미션 클래스로 수정을 하였습니다.
이는 이전의 TimeAttack류의 미션의 경우와 비슷합니다.
추가된 기믹:
Statue (석상): 특정 방향으로 돌려 상호작용하는 기믹
Chest (상자): 아이템을 통해 열 수 있는 상자
Altar (제단): 물건을 운반하여 도착점까지 옮기는 기믹
구현되었던 미션:
물건을 주워다 지정된 제단에 올리기
석상들을 지정된 각도로 돌리기
열쇠를 주워서 상자 열기
의 3가지 미션을 구현하였으나 로직이 동일하여 하나의 클래스로 통합했습니다. 아직 테스트는 진행되지 않았습니다.
추가된 아이템: 상자 개방을 위한 Key, 물건 옮기기 미션용 Carry Item
UI 의존성: MissionSubsystem을 거치지 않고 위젯에서 직접 미션을 찾는 방식은 편리할 수 있지만, 장기적으로 유지보수가 어렵고 의존성이 심해질 수 있어 서브시스템 기반의 중앙 관리 방식을 유지하기로 했습니다.
🛠 발생한 이슈 및 해결
Issue: 기믹의 상태가 변할 때 머티리얼이 실시간으로 교체되지 않는 현상이 발생했습니다.
Status: 현재 원인을 파악 중이며, 렌더링 스레드와 데이터 갱신 시점 사이의 충돌인지 확인하고 있습니다.