C# 在运行时保存当前状态

C# 在运行时保存当前状态,c#,json,unity3d,save,C#,Json,Unity3d,Save,我已经在Unity3D中创建了一个游戏,玩家可以在其中放置模型、旋转模型和缩放模型 现在我想添加一个选项来保存当前状态 我需要为每个模型保存的只是比例、位置、旋转和模型的网格 我知道如何保存除网格之外的所有属性。我计划将数据保存在JSON文件中,但它无法保存网格或游戏对象 我参考了所有的实例模型,因此没有必要找到它们 编辑: 总之,我正在寻找一种保存所选模型的方法,以便在用户希望加载文件时知道要加载哪些模型。 但我无法序列化游戏对象或网格,因此使用JSON或二进制文件不起作用。到目前为止,我所能

我已经在Unity3D中创建了一个游戏,玩家可以在其中放置模型、旋转模型和缩放模型

现在我想添加一个选项来保存当前状态

我需要为每个模型保存的只是比例、位置、旋转和模型的网格

我知道如何保存除网格之外的所有属性。我计划将数据保存在JSON文件中,但它无法保存网格或游戏对象

我参考了所有的实例模型,因此没有必要找到它们

编辑: 总之,我正在寻找一种保存所选模型的方法,以便在用户希望加载文件时知道要加载哪些模型。 但我无法序列化游戏对象或网格,因此使用JSON或二进制文件不起作用。到目前为止,我所能保存的只是每个模型的位置、旋转和比例


如何保存所选模型?

运行时右侧未生成网格?他有一个模型的集合,你可以把它作为预制件放置。因此,只需将每个位置的模型另存为字符串或枚举,然后加载保存的场景,根据保存位置的保存和旋转实例化模型的正确预设


使用prefableHolder.instance.prefablexyz从任何脚本访问您想要的任何模型

您可以简单地将。一般来说:对于StackOverflow来说,询问工具或库的问题是离题的。与其自己做研究,不如试着实现一些东西,如果你在实现过程中遇到了具体问题,我们很乐意帮助你(看看)你的问题是什么?@derHugo很抱歉,我不在我的电脑旁边,所以我无法添加我尝试过的代码。基本上,我试图将整个GameObject保存到二进制文件,但没有成功,所以我尝试保存到JSON文件,但由于同样的原因再次失败(GameObject不可序列化)@TylerH我正在寻找一种方法来保存用户在运行时创建的场景可能是重复的,所以你建议保存文件,然后使用资源加载。加载?我的意思是保存模型的名称你不需要为预制使用资源,对吗?只需要一个脚本就可以将所有的模型都指定为预置,这样您就可以随时访问并实例化它们,无论何时何地,以任何方式旋转。我编辑了我的评论,加入了我使用的PrefableHolder脚本示例。没错,保存模型名称就足够了,这样就可以找到用于重新创建保存状态的网格/模型,每个名称都有一个切换框,PrefableHolder中相应的模型作为返回值。明白了,这太棒了。多谢各位 public class PrefabHolder : MonoBehaviour //assign all necessary prefabs here, also used for logging on mobileDebugText { public static PrefabHolder instance;

 public GameObject prefabXYZ;

    private void Awake()
    {
        instance = this;
    }