我们在使用Unity读取文件或者消息传递的时候,经常说到序列化。什么是序列化?序列化的意思就是我们的数据是按照一定的顺序进行赋值的,这个顺序是一定的。它主要是为了方便变量赋值。在Unity中我们也经常使用这种方法。例如我们可以这样写:
在我们需要序列化的前面加上[System.Serializable]用于告诉C#以下结构是我们需要序列化的。下面我们就说一下如何使用XML进行序列化。
我们不能直接写XML文件,我们一般是通过Excel表格将其转化成XML格式,我们需要转化成啥格式才能比较好的序列化?我们是这样操作的:
其一、定义一个Dictionary 我们将根据结构体的名字将其整个结构体放到里面。
其二、每个结构体它都有自己对应的ID,每个ID唯一标识一个结构体数据,我们就是按照ID进行读取数据。
我们可以利用Swicth case语句读取存放数据,代码如下:
大家看上面的语句,有一个DeserializeObject这个就是C#使用的反序列化函数,我们就是通过它将我们的XML里面的字段保存起来。以下是调用的函数:
那么我们只需要调用我们已经保存到Dictionary里面的值就可以了。
比如:
另外附上xml文件格式:
是不是很方便?
时间: 2024-10-12 18:35:55