我的原始预制件(包括模型,着色器,动画,材质,脚本等)被意外消失了。我只能通过服务器下载unity3d文件。下载的对象在UnityEditor中可见。但是我不能将它们存储为预制件(使用拖放OR脚本)。缺少所有组件。
问题:
-为什么这不可能(游戏对象已加载到RAM中,但为什么我却无法将它们存储在磁盘中)?
-如何恢复它们?
答案 0 :(得分:2)
简短的回答是“否”,您不能只在运行时创建预制件。
这样做的原因是,使预制件成为编辑器仅依赖于prefabUtility名称空间一部分的UnityEditor,因此仅在运行时之外可用(依赖于UnityEngine名称空间)。
资产在运行时也几乎全部锁定为只读。
但这并不意味着完全不可能将您的GameObjects恢复为预制件。
您可以编写自己的脚本,将想要的预制的GameObjects序列化为JSON或XML之类的格式,然后制作一个编辑器脚本,对这些数据进行反序列化并从中重建新的预制件。尽管我个人没有任何有关如何最好地解决此问题的示例,但您将不得不自己精确地确定如何做到这一点。
有关JSON序列化的更多信息,请参见here