【发布时间】:2021-06-07 06:54:51
【问题描述】:
我正在为一个可以在统一编辑模式下编辑关卡的游戏制作关卡编辑器。它最终保存了进度,可以在游戏运行时加载回来,但事实证明你不能通过统一序列化 Unity 的 Gameobject 或任何自定义 C# 对象(即使它这么说)。我能够序列化大部分内容,但坚持使用一个 Dictionary 对象。
现在,问题来了。
[HideInInspector] public Dictionary<GameObject, Vector2> occupants;
这包含一个 GameObject 和一个 Vector2 的字典(Vector 2 是 2d 网格中的位置,而不是 2d 空间)。正常方法都不能序列化。
public static void SaveDataValues(DataValuesToSave dataValues, string level)
{
BinaryFormatter formatter = new BinaryFormatter();
string path = Application.persistentDataPath + level + ".dat";
FileStream stream = new FileStream(path, FileMode.Create);
DataValuesToSave data = dataValues;
formatter.Serialize(stream, data);
stream.Close();
}
我怎样才能序列化这个字典?任何建议将不胜感激。
【问题讨论】:
标签: c# xml unity3d serialization