다른 클래스에서 퀘스트에 대한 정보를 불러올 수 있도록 GetCurrentQuest함수 추가
public Quest GetCurrentQuest() { return quest; }
플레이어 정보를 로드하는 Load 함수에 questId를 받아올 수 있는 quest변수를 선언하고 퀘스트 진행 상황을 알 수 있도록 quest.questProgressAmount를 지정한다.
quest = ObjectManager.Instance().GetQuest(playerInfo.questId); quest.questProgressAmount = playerInfo.questProgress;
인벤토리를 저장하는 파일 INVEN.spam 파일을 생성해서 각 아이템의 ID를 저장.
아이템이 리스트 형태로 저장되기 때문에 foreach 사용 (저장할 데이터를 ","로 나눌 수 있도록 저장)
outData에 이어붙여둔 아이템 ID들을 한 번에 streamWriter를 통해 파일에 입력
void SaveInven() { StreamWriter streamWriter = new StreamWriter(path + "\\INVEN.spam"); string outData = string.Empty; foreach (Item item in inven) { outData += item.id + ","; } streamWriter.WriteLine(outData); streamWriter.Close(); }
파일에 저장된 인벤토리의 정보를 다시 가져오는 LoadInven 함수 작성
reader.ReadToEnd로 데이터를 읽어오고, ","를 기준으로 데이터를 나눔.
foreach문을 돌려 변수 data를 정수로 가져와 GetItem에 넣어주고 이를 Item의 item 변수에 저장
각 데이터를 저장할 때마다 inven에 추가
void LoadInven() { StreamReader reader = new StreamReader(path + "\\INVEN.spam"); string outData = reader.ReadToEnd(); string[] inData = outData.Split(","); foreach(string data in inData) { Item item = ObjectManager.Instance().GetItem(int.Parse(data)); inven.Add(item); } }