void Init_MissionDailyData() { _mission_daily_data = new List <GameData_MissionDaily>(); string text = _mission_daily_csv.text; // StringReader는 1줄 씩 읽기 위해서 쓰이는 기능 using (StringReader reader = new StringReader(text)) { // 밑의 RaadLine이 실행되면 자동으로 다음줄로 넘어감 string line = reader.ReadLine(); // 두번째줄 부터 불러올때는 이렇게 한줄을 강제로 읽고 시작 // while문으로 인해 파일의 끝행에 이를때까지 한줄씩 찍어옴 while ((line = reader.ReadLine()) != null) { // csv 값이므로 ',' seperator 로 데이터를 분리해서 저장 string[] record = line.Split(','); Debug.Assert(record.Length == 6); GameData_MissionDaily temp = new GameData_MissionDaily(); temp.id = int.Parse(record[0]); temp.name = record[1]; temp.clearCount = int.Parse(record[2]); temp.gem_reward = int.Parse(record[3]); temp.reward_icon = record[4]; temp.desc = record[5]; // 스프라이트 전체를 가져올 때 Sprite[] spList = Resources.LoadAll <Sprite>("spritesheet_32x32"); // 스프라이트 전체의 크기 만큼 반복 for (int i = 0; i < spList.Length; i++) { Sprite sp = spList[i]; // 현재의 아이템만 sp 변수에 넣어준 후 if (sp.name == temp.reward_icon) // sp의 이름이 gem_yellow 라면 { // 유니티에서 GameData 객체의 GameData_MissionDailly_data에 추가 해줌 temp.reward_icon_sp = sp; break; } } _mission_daily_data.Add(temp); } } }
void Start() { MissionItem[] array = GetComponentsInChildren <MissionItem>(); // List에 하나를 집어넣을때는 Add, 많이 넣을때는 AddRange _itemList.AddRange(array); List <GameData_MissionDaily> missionDataList = _gameData._mission_daily_data; for (int i = 0; i < _itemList.Count; i++) { GameData_MissionDaily data = missionDataList[i]; MissionItem item = _itemList[i]; item.SetData(data); // 일일 미션 데이터를 각 항목에 넣어준다. } }
public void SetData(GameData_MissionDaily data) { // 데이터를 받아서 실제 그 데이터로 내용들을 표시를 한다. // 미션이름 _nameTxt.text = data.name; // 진행횟수, 총 완료 횟수(ClearCount) int currentCount = 0; int totalCount = data.clearCount; //_clearCountTxt.text = string.Format("{0}/{1}", currentCount,totalCount); _clearCountTxt.text = string.Format($"{currentCount}/{totalCount}"); // 보상 _rewardTxt.text = data.gem_reward.ToString(); // 보상 아이콘 _rewardIcon.sprite = data.reward_icon_sp; }