2016. 2. 29. 16:11
XML만들기는 다음 포스팅을 확인해주세요
이미 만들어진 XML은 다음과 같은 코드로 불러올수있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | using UnityEngine; using System.Collections; using System.Xml; using System.Xml.Serialization; using System.IO; using System.Text; using System.Collections.Generic; /** @date 2016/02/29 @author 조원우(jjgaa2@naver.com) @brief App에서 관리해야하는 모든 텍스트를, 처음에 XMl파일을 읽어와 알맞은 텍스트를 반환합니다. */ public class TextManager : MonoBehaviour { void Awake() { LoadingText(); } List<LocalWord> AllText = new List<LocalWord>(); ///< 이곳에 모든 Text가 쌓입니다. /** @brief 변수 AllText에 xml로 만들어진 데이터를 불러와 짚어 넣습니다. */ void LoadingText() { TextAsset textAsset = (TextAsset)Resources.Load("Texts"); XmlDocument xmldoc = new XmlDocument(); xmldoc.LoadXml(textAsset.text); //xml생성 XmlNodeList Index_Table = xmldoc.GetElementsByTagName("index"); XmlNodeList menu_Table = xmldoc.GetElementsByTagName("menu"); XmlNodeList kor_Table = xmldoc.GetElementsByTagName("kor"); XmlNodeList eng_Table = xmldoc.GetElementsByTagName("eng"); XmlNodeList chi_Table = xmldoc.GetElementsByTagName("chi"); for (int i = 0; i < Index_Table.Count; i++) { LocalWord mWord = new LocalWord(); mWord.Index = System.Convert.ToInt32(Index_Table[i].InnerText); mWord.kor = kor_Table[i].InnerText; mWord.eng = eng_Table[i].InnerText; mWord.chi = chi_Table[i].InnerText; AllText.Add(mWord); } } public enum Enum_Language { kor, eng, chi }; public Enum_Language Language = Enum_Language.kor; public string GetLocalizingText(int Index) { if (AllText[Index].Index == Index) { switch (Language) { case Enum_Language.kor: return AllText[Index].kor; case Enum_Language.eng: return AllText[Index].eng; case Enum_Language.chi: return AllText[Index].chi; } } for (int i = 0; i < AllText.Count; i++) { if (AllText[i].Index == Index) { switch (Language) { case Enum_Language.kor: return AllText[Index].kor; case Enum_Language.eng: return AllText[Index].eng; case Enum_Language.chi: return AllText[Index].chi; } } } Debug.Log("[Error] 반환된 Text가 없습니다."); return "[Error] 반환된 Text가 없습니다."; } } /** @date 2016/02/29 @author 조원우(jjgaa2@naver.com) @brief 텍스트 데이터 클래스. */ public class LocalWord { public int Index; public string kor; public string eng; public string chi; } | cs |
.
'프로그래밍 > Unity3D' 카테고리의 다른 글
[Unity3D] NaverCafe(Plug) SDK 설정 방법 (Android, IOS) (0) | 2017.10.16 |
---|---|
[Unity3D] 유니티 협업도구 Unity Collaboration 사용하기 (0) | 2017.09.07 |
5.3에서 Scene 전환 하는법 // Application.LoadLevel 사용하지않음. (0) | 2016.02.28 |
Corutine(코루틴)에 대하여 (0) | 2016.02.25 |
[Unity3D] 함수 레퍼런스 : GetComponent (0) | 2016.02.25 |