Я довольно новичок в программировании и Unity, и я надеюсь, что кто-то может помочь мне найти решение.
У меня есть XML-файл с данными ниже. Я хочу отображать статистику одной команды за раз, а затем, когда пользователь нажимает кнопку, я бы хотел, чтобы скрипт циклически переходил к следующему узлу команды в файле XML и отображал информацию этой команды. Любая помощь будет принята с благодарностью!
<roster>
<team>
<id>0</id>
<teamname>Atlanta Seagulls</teamname>
<overall>90</overall>
<offense>74</offense>
<defense>98</defense>
</team>
<team>
<id>1</id>
<teamname>Minnesota Trees</teamname>
<overall>68</overall>
<offense>58</offense>
<defense>73</defense>
</team>
<team>
<id>2</id>
<teamname>Denver Mountains</teamname>
<overall>50</overall>
<offense>39</offense>
<defense>74</defense>
</team>
Вот что у меня есть для моего C # скрипта.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Xml;
using UnityEngine.UI;
using System;
using System.Text;
using System.Xml;
public class LoadXML : MonoBehaviour {
public TextAsset xmlRawFile;
public Text uiText;
public int nodeCount;
public int index;
public int teamId;
public Text teamIdTest;
// Use this for initialization
void Start () {
string data = xmlRawFile.text;
parseXmlFile (data);
}
void parseXmlFile(string xmlData)
{
string totalVal = "";
XmlDocument xmlDoc = new XmlDocument ();
xmlDoc.Load (new StringReader (xmlData));
string xmlPathPattern = "//roster/team";
XmlNodeList myNodeList = xmlDoc.SelectNodes (xmlPathPattern);
nodeCount = myNodeList.Count;
for (int i = 0; i < nodeCount; i++)
{
if (i == index)
{
foreach (XmlNode node in myNodeList)
{
XmlNode id = node.FirstChild;
XmlNode teamname = id.NextSibling;
XmlNode overall = teamname.NextSibling;
XmlNode offense = overall.NextSibling;
XmlNode defense = offense.NextSibling;
teamIdTest.text = id.InnerXml;
teamId = Int32.Parse (id.InnerXml);
if (teamId == i)
{
totalVal = " Team Name: " + teamname.InnerXml + "\nOverall: " + overall.InnerXml + "\nOffense : " + offense.InnerXml + "\nNodes : " + nodeCount + "\n\n";
uiText.text = totalVal;
}
}
}
}
}
public void Swap()
{
if (index < nodeCount - 1) {
index++;
} else {
index = 0;
}
}
}