小编Bha*_*vin的帖子

如何在 Unity 中序列化和反序列化包含 Gameobject 和 Vector2 的字典

我正在为一个游戏制作一个关卡编辑器,可以在统一的编辑模式下编辑关卡。它最终保存了进度,可以在游戏运行时加载回来,但事实证明您无法通过 Unity 序列化 Unity 的 Gameobject 或任何自定义 C# 对象(即使它这么说)。我能够序列化大部分内容,但只能使用一个 Dictionary 对象。

现在,问题来了。

[HideInInspector] public Dictionary<GameObject, Vector2> occupants;

它包含一个 GameObject 和一个 Vector2 的字典(Vector2 是 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();
 }
Run Code Online (Sandbox Code Playgroud)

我怎样才能序列化这个字典?任何建议,将不胜感激。

c# xml serialization unity-game-engine

3
推荐指数
1
解决办法
5438
查看次数

标签 统计

c# ×1

serialization ×1

unity-game-engine ×1

xml ×1