> 정리
> 클래스
- : MonoBehaviour 삭제
> 생성자
- private DataManager() 디셔너리 초기화
> 멤버
- private static DataManager instance;
- priavte Dictionary<int, data타입> dic타입datas;
> 인스턴스 메소드
- public static DataManager GetInstance(){
if(DataManager.instance == null) DataManager.instance = new DataManager();
return DataManager.instance;
}
> JSON Data 파일 직렬화
- LoadDatas();
- Resources.Load("Data/chacacter_data") <-- Object 타입 리턴
- Json파일은 TextAsset타입으로 받을수 있다.
- TextAsset textAsset = Resources.Load("Data/character_data") as TextAsset;
- string json = textAsset.text;
- data.cs 만들어논 타입[]로 직렬화
- 디셔너리 = 타입[].ToDictionary( x => x.id);
> data 값 리턴해주는 메소드들 작성
> code 참고
더보기
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using Newtonsoft.Json;
public class DataManager
{
private static DataManager instance;
private Dictionary<int, CharacterData> dicCharacterDatas;
private DataManager()
{
this.dicCharacterDatas = new Dictionary<int, CharacterData>();
}
public DataManager GetInstance()
{
if (DataManager.instance == null)
{
DataManager.instance = new DataManager();
}
return DataManager.instance;
}
public void LoadData()
{
TextAsset textAsset = Resources.Load("data/character_data") as TextAsset;
string json = textAsset.text;
Debug.Log(json);
CharacterData[] arrCharacterData = JsonConvert.DeserializeObject<CharacterData[]>(json);
this.dicCharacterDatas = arrCharacterData.ToDictionary(x => x.id);
}
public CharacterData GetCharacterDataById(int id)
{
return this.dicCharacterDatas[id];
}
}
'c# 강의 > 유니티' 카테고리의 다른 글
20200512 - 델리게이트 / 대리자 (0) | 2020.05.12 |
---|---|
▶ 마우스 이벤트 (0) | 2020.05.11 |
20200511 - 현재까지 패키지 구성 (0) | 2020.05.11 |
20200511 - Scene (0) | 2020.05.11 |
20200511 - FindWithTag (자주 쓰이는 예제 필요) (0) | 2020.05.11 |