Как отобразить содержимое 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. Выглядит это так:

Отображенные данные из XML в Unity3d

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (4 оценок, среднее: 4,00 из 5)
Adblock
detector