背景:从Monobehaviour继承的类不能被序列化。
前提:一种保存MonoBehaviour脚本数据(变量/字段及其值)的方法,以便对其进行序列化,然后再次反序列化并使用此数据来填充"相应的MonoBehaviour脚本的变量/字段值。
到目前为止尝试过:
List<FieldInfo>
并将其填入MB的字段...工作30%;
FieldInfos
已添加,但类型错误,我觉得它可以变得那么难,但我的反思技巧和相关性有限,但看到保存/加载是一个相当常见的功能我希望有人做过它或有人可以指出我正确的方向。
答案 0 :(得分:2)
没有简单的方法可以使用.NET内置的BinaryFormatter来序列化MonoBehaviour。您可以考虑几个选项:
使用Unity序列化,通过声明方法:
void Serialize(){}
void Deserialize(){}
在MonoBehaviour脚本中,您将在方法中选择要序列化/反序列化的属性/字段。
有一个有趣的框架,源代码在GitHub上。它有一个自定义序列化框架,可以让你几乎任何序列化(不仅仅是单一行为)。我从来没有在Unity3d论坛上使用它here is the forum page,我相信它值得一看。
答案 1 :(得分:0)
问题的答案是:ScriptableObject。那就是他们的目的。
将变量放入ScriptableObject中,Unity将处理序列化并为您提供自定义编辑器和其他出色的功能。推荐。