
Unity UGS 및 Addressables를 활용한 데이터 자동화 관리 방식에서 구현한 데이터 자동화 시스템을 기반으로, 제작 레시피 데이터를 시트에 작성하면 별도의 에디터 수정을 거치지 않고 바로 테스트할 수 있도록 구조를 설계하고 개발을 시작했습니다.
- 졸업 작품 개발 과정에서 Unity UGS 및 Addressables를 활용한 데이터 자동화 관리 방식으로 두 개 이상의 시트 데이터를 불러오는 작업을 진행했습니다. 하지만 ItemData와 CraftingRecipe 시트의 데이터를 동시에 요청할 경우, 로딩 순서가 꼬이면서 일부 데이터가 정상적으로 불러와지지 않는 문제가 발생했습니다.
- Coroutine을 활용하여 비동기 방식으로 처리하고, yield return new WaitUntil(() => isDone); 구문을 사용해 하나의 작업이 완료된 후에 다음 작업이 순차적으로 실행되도록 구조를 개선했습니다.
- A 재료 + B 재료 = 아이템 형태의 레시피를 저장하기 위해, 두 재료명을 사전순으로 정렬한 후 "A재료_B재료" 형식의 키를 생성하고, 그에 대응하는 Value에 결과 아이템 이름을 저장하는 방식으로 레시피를 관리했습니다.
재료를 등록하는 슬릇
-- IDropHandler: Item UI를 드래그하여 슬롯 칸에 놓았을 때, 해당 Item UI의 데이터를 받아와 슬롯에 설정하는 용도로 사용했습니다.
-- IPointerDownHandler: 슬롯에 재료가 등록되어 있는 상태에서 슬롯을 클릭하면 해당 재료를 제거할 수 있도록 사용했습니다.
Item UI
-- IBeginDragHandler: Item UI의 드래그가 시작될 때, 드래그에 필요한 기초 설정을 위해 사용했습니다.
-- IDragHandler : 드래그 중인 Item UI가 마우스 포인터를 따라 움직이도록 구현할 때 사용했습니다.
-- IEndDragHandler : 드래그가 종료되었을 때, Item UI를 원래 위치로 되돌리기 위해 사용했습니다.
https://code-piggy.tistory.com/entry/Unity-Interface-in-UnityEngineEventSystems
https://myithistory1.tistory.com/81
작업속도를 늘려주는 영리한 구조네요 👍