是否可以在Unity中保存带有组件的GameObject?

时间:2018-02-25 02:36:07

标签: unity3d serialization save load

我试图保存/序列化GameObject及其组件(使用它们的当前值),但我认为它不可能,任何想法???

请记住,我不想使用资产商店的资产,我想自己编码。 在此先感谢:)

2 个答案:

答案 0 :(得分:0)

抱歉,我没有代表发表评论。我使用两种方法来实现这种保存状态。 首先是程序员似乎建议的,创建一个承载重建对象所需属性的类。组件名称可以保存为字符串,然后使用 gameObject.AddComponent(Type.GetType(componentName)); 如果您这样做很多,可能需要先查看此论坛。Here

您可以使用unity serializer序列化这些类(类型的字符串名称将序列化。您可能必须创建一个子类来处理不同类型的每个对象中的值。

这可能是一个相当复杂的方法,所以我更喜欢为资源文件夹中的预制件序列化的文件路径。任何需要保存的值都可以保存在可序列化的类中,如第一种方法,该方法在保存的预制件的脚本中引用。此脚本有一种方法,可以在创建预制件时将保存在反序列化类中的所有详细信息应用于预制件。脚本捕获详细信息,添加到类中并在应记录对象状态时序列化。

管理的确切方式可能会有所不同,但我自己也做了这个,因为他能够存储我需要的任何值。即使您使用资产商店中的第三方序列化程序,您仍然无法保存整个对象,但您将能够获得足够的信息来重新创建。

答案 1 :(得分:0)

我已经设法保存我想要的组件(自定义脚本),方法是将它们保存在json文件中,然后使用二进制文件对它们进行序列化,以便它们更安全。 感谢所有试图帮助的人......