03/25 본캠프 #63

guno park·2024년 3월 25일
0

본캠프

목록 보기
63/77

오늘 한 일

중간 발표 직후라 자잘한 것에 대해 고민 해보았음.

1. 맵 이동 관련 로직 고민

지도를 켜서 이동하는 경우 시간대도 바뀌지만, 내부 이동은 시간대가 바뀌지 않아야 한다.
기존에는 위치 이동 메서드가 끝날 때 시간대 변경을 하도록 작성 되었지만, 지도의 확인 버튼으로 메서드를 옮겨서 지도를 사용할 때만 시간대를 변경하고, 아닐때는 변경되지 않도록 작업할 것이다.

2. 선택지 규격 획일화

기존에 사용하던 방식은 Vertical Layout Group에 Middle Center를 사용하고 있었는데, Upper Center로 변경하고 Contents Size Fitter를 사용하여 Vertical을 MinSize로 맞춰주었다.

이렇게 사용할 시 Pivot만 제대로 맞춰주면 그 점을 중심으로 예쁘게 선택지가 정렬된다.

3. NPC, Item 배치에 관한 고민

각 캔버스를 불러와서 세팅할 때, 배치된 오브젝트들의 활성화 여부를 어떻게 판별할 것인가에 대해 생각해보았다.

NPC의 경우 각각의 NPC마다 설정이 다를 것이기 때문에 논의 후에 적용시킬 것이지만,
NPC를 담당하는 해당 스크립트에 DayTime에 대한 조건을 넣어서 해당하지 않는다면 꺼지는 식으로 작성해볼 생각이다.

Item의 경우는 좀 더 간단하게 생각해보았다. 먼저 이 아이템 오브젝트가 특정 동작 수행 후 다시 등장할 지 여부를 결정해야 한다. 여기서는 기존에 있는 ItemData의 ItemType을 이용하여 분류하고, 이 오브젝트에 관한 활성화 데이터를 전환할 수 있도록 메서드를 만들어 리스너에 구독시켜주었다.

4. Item 구독 메서드에서 프리팹 복제 시 부모 오브젝트의 위치 찾기

아이템 클릭 시 그 아이템에 대한 정보를 보여주기 위해 그 오브젝트의 프리팹을 잠시 복제하는 과정이 있다. 매개변수로 아이템의 ID값과 부모 오브젝트의 transform을 받는데, 현재 캔버스를 변경하여 장소의 이동을 표현하다보니 이 부모 오브젝트의 위치 또한 계속 바뀌어야한다.

다행히도 CanvasGroup이라 하여 장소ID를 Key값으로 가지는 사전형 데이터가 존재하여 람다로 위치를 변경해주도록 설정하였다.

public Transform itemCanvas =>  GameManager.Instance.CanvasGroup[GameManager.Instance.Playerinformation.position].transform;

현재 초안 상태로 나중에 캐싱하던가 해서 정리해야 할 것만 같다.

0개의 댓글