XML文件在Unity中的序列化

我们在使用Unity读取文件或者消息传递的时候,经常说到序列化。什么是序列化?序列化的意思就是我们的数据是按照一定的顺序进行赋值的,这个顺序是一定的。它主要是为了方便变量赋值。在Unity中我们也经常使用这种方法。例如我们可以这样写:

wKiom1St0Mjz1ONzAAHQLVJkn9g537.jpg

在我们需要序列化的前面加上[System.Serializable]用于告诉C#以下结构是我们需要序列化的。下面我们就说一下如何使用XML进行序列化。

我们不能直接写XML文件,我们一般是通过Excel表格将其转化成XML格式,我们需要转化成啥格式才能比较好的序列化?我们是这样操作的:

wKioL1St0pKwGslGAAJCvgTzQLI105.jpg

其一、定义一个Dictionary 我们将根据结构体的名字将其整个结构体放到里面。

其二、每个结构体它都有自己对应的ID,每个ID唯一标识一个结构体数据,我们就是按照ID进行读取数据。

我们可以利用Swicth case语句读取存放数据,代码如下:

wKioL1St05ahdoObAAKtmqYnOOw112.jpg

大家看上面的语句,有一个DeserializeObject这个就是C#使用的反序列化函数,我们就是通过它将我们的XML里面的字段保存起来。以下是调用函数

wKiom1St02nwjlfoAADohkh5aTw782.jpg

那么我们只需要调用我们已经保存到Dictionary里面的值就可以了。

比如:

wKioL1St1zfA5SkKAAAmQTRZxKc041.jpg

另外附上xml文件格式:

wKioL1St15uQwMPlAACUH2w90qo397.jpg

是不是很方便?

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念