유니티에서 코딩하면서 가장 좋아하는 기능중에 하나였던거 같다.
물론 유니티가 아니라 c#에서 쓰는거지만 어차피 난 유니티만 쓰니깐 유니티에서 쓰는법을 쓸거임
참고로 옛날에 썻던 네이버 블로그에 있던거 그대로 복붙함
c#에서 지원하는 xmlDocument클래스를 써서 xml데이터를 읽어올수 있는데
유니티에서 인스펙터로 끌어서 가지고 오려면 유니티에서 지원하는 TextAsset를 사용하면 된다.
물론 Resource.Load나 파일입출력으로 가지고 올 수도 있다.
아래는 랜덤한 철수를 뽑아오는 클래스다.
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 | using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Xml;//xml 네임스페이스 using하기 public class XMLTEST : MonoBehaviour { [SerializeField] private TextAsset xmlTxt;//텍스트 에셋으로 가지고온 xml파일 private XmlDocument xmlDoc;//텍스트로 가져온 파일을 xml도큐먼트로 변환 private void Start () { //text를 XmlDocument에 맞게 변환 xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlTxt.text); Debug.Log(getName()); } public string getName() { XmlNodeList nodes = xmlDoc.SelectNodes("Name/familyName/name");//랜덤한 성씨 string name = nodes[Random.Range(0, nodes.Count)].InnerText; name += xmlDoc.SelectSingleNode("Name/lastName/name").InnerText;//하나의 이름 return name;//이름 출력 } } | cs |
xml 파일은 이렇게 되어있다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?xml version="1.0" encoding="utf-8" ?> <Name> <familyName> <name>김</name> <name>이</name> <name>박</name> <name>최</name> <name>정</name> <name>강</name> <name>안</name> <name>조</name> </familyName> <lastName> <name>철수</name> </lastName> </Name> | cs |
System.Xml의 msdn 문서 : https://msdn.microsoft.com/ko-kr/library/system.xml(v=vs.110).aspx
XML에 대한 위키문서 : https://ko.wikipedia.org/wiki/XML
'프로그래밍 > 유니티' 카테고리의 다른 글
유니티 코루틴 1프레임 스킵하기 (0) | 2017.06.29 |
---|---|
유니티애드의 수익 (0) | 2017.06.23 |
클래스문자열로 만들어서 저장하기 - 유니티에서 (0) | 2017.06.17 |
유니티 Resources.Load로 슬라이스 된 스프라이트 가지고 오기 (0) | 2017.05.29 |
마우스 커서 고정하기 & 안보이게 하기 (0) | 2017.05.21 |