유니티 xml 파일 불러오는 방법 (android)
유니티에서 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;
}
}