C# 将数据链接到unity中的游戏对象

C# 将数据链接到unity中的游戏对象,c#,unity3d,data-structures,C#,Unity3d,Data Structures,我有一个脚本,可以计算与unity游戏对象网格相关的内容。该信息保存到字典中,但该网格的该信息不会更改。问题是,玩、停、再玩让我重新计算这些信息。有没有办法像gameobject保存网格一样保存字典?有很多方法可以统一存储数据。我可以想到这些: 播放参考文件。最简单的方法,仅支持基本数据类型。然而,读和写是昂贵的,应该在更新方法中避免。这可以使用var i=PlayerPrefs.GetInt(“myInt”,0)或PlayerPrefs.SetInt(“myInt”,newValue)来实现这

我有一个脚本,可以计算与unity游戏对象网格相关的内容。该信息保存到字典中,但该网格的该信息不会更改。问题是,玩、停、再玩让我重新计算这些信息。有没有办法像gameobject保存网格一样保存字典?

有很多方法可以统一存储数据。我可以想到这些:

  • 播放参考文件。最简单的方法,仅支持基本数据类型。然而,读和写是昂贵的,应该在更新方法中避免。这可以使用
    var i=PlayerPrefs.GetInt(“myInt”,0)
    PlayerPrefs.SetInt(“myInt”,newValue)来实现这通常有助于存储用户数据,如当前xp或硬币和宝石的数量

  • 数据库。如果处理大量数据,这可能是最困难的方法,但也是最有效的方法

  • 序列化。Unity默认使用序列化。它以纯文本格式或二进制格式或两者(您的选择)的形式将它们存储为元数据

  • JSONObject。最灵活、可定制、便携且可靠。这是序列化数据的更好替代品。JSONObject文件应该放在StreamingAssets文件夹中,然后复制到应用程序数据路径。为了实现这一点,您需要一个JSONObject类(可以在上找到)和转换器,您可以为您的项目编写这些类,以便在JSONObject之间来回转换

  • 如果我错了,请纠正我

    这是我对你的问题的建议:


    使用Unity编辑器。创建从EditorWindow派生的脚本。在项目中打开它的自定义窗口。在该窗口中,选择一个对象并单击按钮时,会生成一个JSONObject并存储在StreamingAssets文件夹中。这样,在播放或重新启动项目时,您就可以准备好所有JSONObject。

    看看unity的playerprefs,它将永久保存您的数据。

    您可以向我们展示您的代码吗?为什么需要代码?我只想持续保存字典,所以即使我停下来再玩一次,我也不需要重新计算字典@BasHow我们应该在不看到你在做什么的情况下帮助你吗?因为我已经描述了我的问题也许?你可以研究序列化你能解释更多的playerpref或举个例子吗?与基本json对象相同,这将花费太多时间,遗憾的是我没有时间。同样,这也不是一个学习教程的地方。请在此处搜索您自己并询问与代码相关的问题。我更新了我的答案,以涵盖您可能需要的更多信息。例如,在android手机上运行时,最后一个选项是否有效?是的,我一直在使用JSONObject,它非常适合存储[非用户]数据。我再次更新了答案