Unity에서 XML로 데이더를 저장하고 읽는 방법
※ Android에서 xml을 사용하기 위해서는 filePath를 "Application.persistentDataPath" 이후에 해야합니다.
public class XmlFile : MonoBehaviour { public static void Write_List() { string filePath; #if UNITY_ANDROID filePath = Application.persistentDataPath + "/Person.xml"; #endif #if UNITY_STANDALONE_WIN filePath = Application.dataPath + "/Person.xml"; #endif XmlDocument Document = new XmlDocument(); XmlDeclaration xmlDeclaration = Document.CreateXmlDeclaration("1.0", "UTF-8", null); Document.AppendChild(xmlDeclaration); XmlElement ItemListElement = Document.CreateElement("List"); Document.AppendChild(ItemListElement);
for (int i = 0 ; i < 10; i++ ) { XmlElement ItemElement = (XmlElement)ItemListElement.AppendChild(Document.CreateElement("Person")); ItemElement.SetAttribute("Name", "Person Name " + i.ToString() ); ItemElement.SetAttribute("Age", (i*10).ToString() ); } // time 저장
XmlElement ItemElement2 = (XmlElement)ItemListElement.AppendChild(Document.CreateElement("time")); ItemElement2.SetAttribute("minute", "10"); ItemElement2.SetAttribute("second", "30"); Document.Save(filePath); } public static void Read_List() { string filePath; #if UNITY_ANDROID filePath = Application.persistentDataPath + "/Person.xml"; #endif #if UNITY_STANDALONE_WIN filePath = Application.dataPath + "/Person.xml"; #endif XmlDocument Document = new XmlDocument(); Document.Load(filePath); XmlElement ItemListElement = Document["List"];
foreach (XmlElement ItemElement in ItemListElement.ChildNodes) { if (ItemElement.Name.Equals("Person")) { string name = ItemElement.GetAttribute("Name"); string age = ItemElement.GetAttribute("Age"); Debug.Log("Name : " + name + ", Age :" + age); } else if (ItemElement.Name.Equals("time")) { int minute, second = 0; minute = System.Convert.ToInt32(ItemElement.GetAttribute("minute")); second = System.Convert.ToInt32(ItemElement.GetAttribute("second")); Debug.Log("minute : " + minute + ", second :" + second); } } } } |
Wirte_List()를 수행한 결과
<?xml version="1.0" encoding="UTF-8"?> <List> <Person Name="Person Name 0" Age="0" /> <Person Name="Person Name 1" Age="10" /> <Person Name="Person Name 2" Age="20" /> <Person Name="Person Name 3" Age="30" /> <Person Name="Person Name 4" Age="40" /> <Person Name="Person Name 5" Age="50" /> <Person Name="Person Name 6" Age="60" /> <Person Name="Person Name 7" Age="70" /> <Person Name="Person Name 8" Age="80" /> <Person Name="Person Name 9" Age="90" /> <time minute="10" second="30" /> </List> |
'Programming > Game Engine' 카테고리의 다른 글
[Unity] Unity Singleton 사용 (0) | 2017.09.02 |
---|---|
[Unity]Unity 2D로 Windows 프로그램 만들기 [3/3] (0) | 2017.01.23 |
[Unity] Unity 2D로 Windows 프로그램 만들기 [2/3] (0) | 2016.12.11 |
[Unity] Unity 2D로 Windows 프로그램 만들기 [1/3] (0) | 2016.12.11 |
[Unity] 유니티 배경 이동 만들기 (0) | 2016.09.26 |