본문 바로가기
개발/정보

유니티 xml 파일 불러오는 방법 (android)

by 해피류 2017. 9. 28.

유니티에서 xml 파일 불러오는 방법


방법만 간단하게 작성하겠습니다.

각자 만든 xml 데이터 클래스 타입이 있다고 치고, 그걸 사용하서 Serializer를 사용해서 불러오는 방법입니다. 


  string filePath = string.Empty;


        XmlSerializer serializer = new XmlSerializer(typeof(LanguageManager));

        TextAsset tAsset = Resources.Load("MultiLanguage") as TextAsset;

        using (var stream = new StringReader(tAsset.text))

        {

            return serializer.Deserialize(stream) as LanguageManager;

        }



저는 Xml 파일을 "MultiLanguage.xml" 이라고 지었으며 파일 위치는 Resources/ 아래에 저장해 뒀습니다.



이렇게 해서 불러오니까 Android 와 윈도우 환경에서는 잘 불러오네요. IOS 환경에서는 테스트 못해봤습니다.

아래는 제가 해서 잘 안되었던 경우입니다. 괜히 저처럼 삽질 하셨다면 그냥 위에 코드 사용하시면 될것같습니다. 


        string filePath = string.Empty;


#if UNITY_EDITOR

        filePath = Path.Combine(Application.dataPath, "Resources/MultiLanguage.xml");

#elif UNITY_ANDROID

        //string androidPath = "jar:file://" + Application.dataPath + "!/assets";

        filePath = Path.Combine(Application.streamingAssetsPath, "Resources/MultiLanguage.xml");

#endif


        if (File.Exists(filePath))

        {

            Application.Quit();

            XmlSerializer serializer = new XmlSerializer(typeof(LanguageManager));

            using (FileStream stream = new FileStream(filePath, FileMode.Open))

            {

                return serializer.Deserialize(stream) as LanguageManager;

            }

        }