인프런 커뮤니티 질문&답변

ji980207님의 프로필 이미지

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

Data Manager #2

이번 강의에서 구현한 LoadJson 함수 문법 질문입니다

22.05.24 17:53 작성

·

382

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

Rookiss님의 프로필 이미지
Rookiss
지식공유자

2022. 05. 24. 23:27

JsonUtility.FromJson<Loader>(textAsset.text);

위 부분에서 FromJson을 이용해 json -> 변환하고 싶은 클래스 형태를 입력하는 것입니다.
json 구조와 딱 일치하는 class를 정의해 편리하게 파싱을 하는 것이 목적이죠.

where ~ 부분은 ILoader<Key,Value>인터페이스를 분명 사용하는 애라는걸 명시해서
MakeDic() 등을 이용하려고 넣어줬습니다.

위엔 제가 편의상 만든 기능들이고 그냥 본인이 원하시는 다른 방법으로 수정을 해보시기 바랍니다.

 

ji980207님의 프로필 이미지

작성한 질문수

질문하기