在运行时保存当前状态

时间:2019-09-02 15:56:45

标签: c# json unity3d save

我已经在Unity3D中构建了一个游戏,玩家可以在其中放置模型,旋转模型并缩放它们。

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

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

我知道如何保存除网格物体以外的所有属性。我计划将数据保存在JSON文件中,但无法保存网格物体或GameObject。

我已经参考了所有实例化模型,因此无需查找它们。

编辑: 综上所述,我正在寻找一种保存所选模型的方法,这样我就可以知道当用户要加载文件时要加载哪些模型。 但是我无法序列化GameObject或网格,因此无法使用JSON或二进制文件。到目前为止,我只能保存每个模型的位置,旋转和比例。

如何保存选定的模型?

1 个答案:

答案 0 :(得分:1)

网格不是在运行时生成的,对吗?他拥有您可以放置​​的预制模型集合。因此,只需将其保存为每个位置具有哪个模型的字符串或枚举,然后要加载保存的场景,您可以根据保存位置和旋转位置的保存实例化模型的正确预制。

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; }

使用Prefabholder.instance.prefabXYZ

从任何脚本访问所需的任何模型