如何进行字典序列化?
字典是一种常用数据结构,但是在unity和C#中是不支持直接进行序列化的,但是有变通的办法进行系列化。
思路:
(1)数组是支持序列化的
(2)用一个结构体去模拟Dictionary
(3)建立一个结构体数组
(4)对数组进行序列化
(5)代码手动用数组对字典赋值
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CardsData : MonoBehaviour
{
// 卡片精灵字典,根据key值得到对应的卡片sprite
public Dictionary<string, Sprite> CardSpriteDict;
[System.Serializable]
public struct CardStruct
{
public string key;
public Sprite sprite;
}
public CardStruct[] CardDatas;
public void DataStart()
{
// 字典内容
CardSpriteDict = new Dictionary<string, Sprite>();
for (int i = 0; i < CardDatas.Length; i++)
{
if (!CardSpriteDict.ContainsKey(CardDatas[i].key))
{
CardSpriteDict.Add(CardDatas[i].key, CardDatas[i].sprite);
}
}
}
}