在 Unity 中序列化 GameObject

Serialize GameObject in Unity

我 class 喜欢 -

[serializable]
public class DemoClass{
    [SerializeField]
    public GameObject gameObject;
}

我想使用序列化存储数据。 Unity 文档说 GameObject 是 serializeField。但它给出了异常 -

SerializationException: Type UnityEngine.GameObject is not marked as Serializable.

有人知道吗?

您需要将 [serializable] 属性添加到您希望序列化的 classes。如果您的 class 中的任何 class 尚未序列化,您也需要将此属性添加到那些 class 中。

例如

[Serializable]
public class DemoClass
{
   public GameObject gameObject;
   public AudioClip audio;
}

在您的 class 姓名前添加标签 [Serializable]

[Serializable]
public class DemoClass{
    public GameObject gameObject;
    public AudioClip audio;
}

Documentation

编辑: 如果您仍然想序列化 GameObject 它们是一些允许序列化 Unity 对象的插件。参见:Runtime Serialization for Unity