게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[C#,Unity]인벤토리 자료구조의 효율성에 대해 여쭙고자 합니다.
게시물ID : programmer_19418짧은주소 복사하기
작성자 : 여우느님
추천 : 0
조회수 : 3387회
댓글수 : 2개
등록시간 : 2016/12/27 02:30:43
옵션
  • 본인삭제금지
안녕하세요. 프게 선배님들께 도움을 구하려 합니다.

한창 유니티로 학생 프로젝트로 개발을 진행하고 있고, C#을 사용하고 있습니다.

현재 인벤토리를 만들려고 자료구조를 생각하고 있는데
제가 생각하고있는 구조는

Dictionary<TKey,TValue>와 List<T>를 사용하려고 합니다.

인벤토리에 담길 데이터로는

Item Class와 이를 상속 받는
Skill Class 와 Equipment Class 입니다.

Item Class는 기본적인 아이템 정보와 개수를 가지게 되는 소비 아이템이 사용할 필드 영역이 되고
Skill Class와 Equipment Class 는 각각 개수 하나를 고정으로 하여 스킬과 장비류를 포괄하는 Class로 만들려고 합니다.

Dictionary 컴포넌트의 구조를 Dictionary<string, List<T>> 로 하면서
Dictionary<"Consub", List<Item>> //소비 아이템
Dictionary<"Skill", List<Skill>>     //스킬
Dictionary<"Equip", List<Equipment>>  // 장비
로 하여 관리하려고 합니다.

이렇게 List를 나누게 된 이유는
게임 상에서 소비아이템, Skill, Equip 아이템들을 구분짓는 탭들이 존재하기 때문에 나누어 두게 되었습니다.
하지만 여기까지 와서 보니
이 구조에서 List<>가 각각 세 가지가 만들어졌는데 Dictionary<>가 과연 필요한 자료구조인가 의문이 들게 되었고
상속 구조 상 하나의 리스트에 모든 아이템들을 하나의 리스트에 집어넣고, 최상위 클래스에 enum을 추가하여 
각 아이템이 어떤 타입인지(item clas 타입인지, Skill 타입인지, equip 타입인지) 구분하게 끔 하면 괜찮을 듯 했지만
이후에 특정 아이템을 search 할 때 소모될 시간 때문에 고민이 됐습니다.

이후에 xml 파싱으로 수치 데이터들을 가지고 플레이어 데이터를 저장하고 로드할 계획이기도 합니다. 

이 두 자료구조를 어떻게 하면 좀 더 효율적인 구조로 인벤토리를 만들 수 있을까요?










꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호