Как отобразить содержимое XML файла Unity 5
В сегодняшнем уроке мы разберем как отобразить содержимое файла XML Unity 5 и заполнить им класс персонажа. Для начала создадим XML файл, который мы должны будем распарсивать. Создадим файл PlayerData.XML в папке Resources, в котором напишем:
100 2 0.6
Данный файл мы и будем распарсивать. Создадим класс Player, в который мы и будем преображать наши даные.
//Для того, чтоб данные отображались //в инспекторе [Serializable] public class Player { //3 переменные из файла, в которые //Мы будем выгружать public int Hp; public float Speed; public float Strength; }
Далее создадим скрипт XmlToObjects, который считает наш файл и по алгоритму выгрузит его в приемлимый для нас класс.
//Не забываем подключить пространство имен using System.Xml; //System - для работы Convert using System; //Делаем класс статичным, чтоб он был доступен отовсюду. public static class XmlToObjects { public static Player ReadXMLToPlayer(string Path) { //Создаем новый объект нашего XML документа var document = new XmlDocument(); //Загружаем нужный нам файл document.Load(Path); //Получаем главный элемент документа //В котором лежат все узлы XmlElement elem = document.DocumentElement; //Создаем новый объект данных игрока Player PlayerData = new Player(); //Выгружаем данные, преобразовывая в нужный формат //ChildNodes[i] - это узлы которые хранят в себе данные //Но могут хранить и другие узлы, так как XML //имеет древовидную структуру, что позволяет //Уходить далеко вглубь PlayerData.Hp = Convert.ToInt32(elem.ChildNodes[0].InnerText); PlayerData.Speed= Convert.ToSingle(elem.ChildNodes[1].InnerText); PlayerData.Strength = Convert.ToSingle(elem.ChildNodes[2].InnerText); return PlayerData; } }
А теперь создадим класс, который повесим на игрока, и который будет запускать нашу выгрузку
public class PlayerController : MonoBehaviour { public Player PlayerData; private void Start() { //Выгрузим данные их XML PlayerData = XmlToObjects.ReadXMLToPlayer(Application.dataPath + "/Resources/PlayerData.xml"); } }
По итогу реализации скрипта мы должны будем отобразить содержимое XML файла в Unity. Теперь при запуске игры, наш скрипт выгружает данные и заносит их в класс Player. Выглядит это так: