Вот XML, который нужно сереализовать (ball.xml):
Синтаксис:
Используется xml
<?xml version="1.0" encoding="utf-8"?>
<Ball>
<pos><x>1</x><y>11</y><z>3</z></pos>
<smallball><test>123</test><pos>1222334</pos></smallball>
</Ball>
<Ball>
<pos><x>1</x><y>11</y><z>3</z></pos>
<smallball><test>123</test><pos>1222334</pos></smallball>
</Ball>
Далее приведу оба класса, экземпляры которых нужно заполнить. Создать нужно экземпляр класса Ball, в котором есть экземпляр подкласса Smallball
Синтаксис:
Используется csharp
using UnityEngine;
[System.Serializable]
public class Ball
{
public Vector3 pos;
public SmallBall smallball;
}
[System.Serializable]
public class Ball
{
public Vector3 pos;
public SmallBall smallball;
}
и подкласс Smallball:
Синтаксис:
Используется csharp
using UnityEngine;
[System.Serializable]
public class Smallball
{
public string test;
public float pos;
}
[System.Serializable]
public class Smallball
{
public string test;
public float pos;
}
И. наконец, главный и простой класс сериализации:
Синтаксис:
Используется csharp
using UnityEngine;
using System.IO;
using System.Xml.Serialization;
using System;
public class Serializer : MonoBehaviour
{
public Ball ball;
void Start()
{
XmlSerializer serial = new XmlSerializer(typeof(Ball));
Stream reader = new FileStream(Application.dataPath + "/XML/Ball.xml", FileMode.Open);
ball = (Ball)serial.Deserialize(reader);
}
}
using System.IO;
using System.Xml.Serialization;
using System;
public class Serializer : MonoBehaviour
{
public Ball ball;
void Start()
{
XmlSerializer serial = new XmlSerializer(typeof(Ball));
Stream reader = new FileStream(Application.dataPath + "/XML/Ball.xml", FileMode.Open);
ball = (Ball)serial.Deserialize(reader);
}
}
В результате получаем экземпляр ball класса Ball, заполненный всеми значениями. указанными в файле .xml.