【发布时间】:2015-12-30 11:05:38
【问题描述】:
我正在 Unity 中制作 3D 模拟器。
对于这个模拟器,我需要一些存储在 Serializable 对象中的数据。
这个对象是在我制作的 DLL 文件中定义的。
我用这段代码反序列化它:
public class myObject
{
static public myObject LoadFromFile(String Path)
{
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter BF = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
System.IO.FileStream FS = new System.IO.FileStream(Path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read);
myObject Result = BF.Deserialize(FS) as myObject;
FS.Close();
return Result;
}
}
我的统一程序引用了包含“myObject”定义的类库。
如果我从 Unity 运行反序列化功能,这个过程需要 35.080 秒。
如果我在一个 Windows 应用程序中运行它,该应用程序是我为测试目的而创建的,它引用同一个类库并打开同一个文件,这个过程只需要 0.260 秒。
即使我异步运行这个过程,在 Unity 中也需要很长时间。
我想知道为什么从 Unity 运行这段代码需要更长的时间? 对此我有什么可以做的吗?
提前致谢,
马丁
【问题讨论】:
-
欢迎使用 StackOverflow,您在测试和 Unity 应用程序中使用相同的对象吗?
-
是的,一切都一样
标签: c# serialization unity3d deserialization binaryformatter