작성
·
427
7
Loader LoadJson<Loader,Key,Value>(string path) where Loader : ILoader<Key,Value>
{
TextAsset textAsset = Managers.Resource.Load<TextAsset>($"Data/{path}");
return JsonUtility.FromJson<Loader>(textAsset.text);
}
여기서 Loader << 이 부분이 헷갈려서 몇가지 질문 남깁니다.
1. Loader라는 타입을 따로 정의하지 않았는데, 이게 제네릭메소드 T 와 같은 의미이며, Loader라고 정의한거는 그냥 보기 편하게 T 를 Loader라고사용했다 보면 되는건가요 ?
2. LoadJson<Loader,Key,Value> 에서 Loader가 무슨의미인지 모르겠습니다. Loader에 대한 정보가 없으니, 정보를 얻기 위해 그냥 단순 : ILoader<Key,Value>를 상속받는 클래스를 저기에 입력하라는 의미로 받아드리면 될까요 ?
답변 1
3
JsonUtility.FromJson<Loader>(textAsset.text);
위 부분에서 FromJson을 이용해 json -> 변환하고 싶은 클래스 형태를 입력하는 것입니다.
json 구조와 딱 일치하는 class를 정의해 편리하게 파싱을 하는 것이 목적이죠.
where ~ 부분은 ILoader<Key,Value>인터페이스를 분명 사용하는 애라는걸 명시해서
MakeDic() 등을 이용하려고 넣어줬습니다.
위엔 제가 편의상 만든 기능들이고 그냥 본인이 원하시는 다른 방법으로 수정을 해보시기 바랍니다.