[Unity] 졸업작품 - 아이템 제작 시스템 (0)

김필원·2025년 4월 20일

유니티 - 졸업작품

목록 보기
2/2
post-thumbnail

개요

Unity UGS 및 Addressables를 활용한 데이터 자동화 관리 방식에서 구현한 데이터 자동화 시스템을 기반으로, 제작 레시피 데이터를 시트에 작성하면 별도의 에디터 수정을 거치지 않고 바로 테스트할 수 있도록 구조를 설계하고 개발을 시작했습니다.

구조 개선

  • 졸업 작품 개발 과정에서 Unity UGS 및 Addressables를 활용한 데이터 자동화 관리 방식으로 두 개 이상의 시트 데이터를 불러오는 작업을 진행했습니다. 하지만 ItemData와 CraftingRecipe 시트의 데이터를 동시에 요청할 경우, 로딩 순서가 꼬이면서 일부 데이터가 정상적으로 불러와지지 않는 문제가 발생했습니다.
  • Coroutine을 활용하여 비동기 방식으로 처리하고, yield return new WaitUntil(() => isDone); 구문을 사용해 하나의 작업이 완료된 후에 다음 작업이 순차적으로 실행되도록 구조를 개선했습니다.

Dictionary 를 이용해 제작 레시피 관리

  • A 재료 + B 재료 = 아이템 형태의 레시피를 저장하기 위해, 두 재료명을 사전순으로 정렬한 후 "A재료_B재료" 형식의 키를 생성하고, 그에 대응하는 Value에 결과 아이템 이름을 저장하는 방식으로 레시피를 관리했습니다.

EventSystem 을 이용해 제작시스템 UI 구현

  • 재료를 등록하는 슬릇

    -- IDropHandler: Item UI를 드래그하여 슬롯 칸에 놓았을 때, 해당 Item UI의 데이터를 받아와 슬롯에 설정하는 용도로 사용했습니다.
    -- IPointerDownHandler: 슬롯에 재료가 등록되어 있는 상태에서 슬롯을 클릭하면 해당 재료를 제거할 수 있도록 사용했습니다.
  • Item UI

    -- IBeginDragHandler: Item UI의 드래그가 시작될 때, 드래그에 필요한 기초 설정을 위해 사용했습니다.
    -- IDragHandler : 드래그 중인 Item UI가 마우스 포인터를 따라 움직이도록 구현할 때 사용했습니다.
    -- IEndDragHandler : 드래그가 종료되었을 때, Item UI를 원래 위치로 되돌리기 위해 사용했습니다.

영상

ETC.

참고 사이트

https://code-piggy.tistory.com/entry/Unity-Interface-in-UnityEngineEventSystems
https://myithistory1.tistory.com/81

profile
안녕하세요 개발자 김필원입니다.

5개의 댓글

comment-user-thumbnail
2025년 4월 20일

작업속도를 늘려주는 영리한 구조네요 👍

1개의 답글
comment-user-thumbnail
2025년 4월 20일

기획보고 작업할 때 정말 도움이 되었습니다. 감사합니다 ☆

1개의 답글
comment-user-thumbnail
2025년 4월 20일

이번에 프로젝트를 진행하면서 필요했던 부분인데 도움이 되네요

답글 달기