我在Unity 3D中编写了简单的地形加载。使用此工具压缩地形:https://bitbucket.org/Agent_007/lzma-unity/overview。 我正在使用这个脚本,我写道:
void loadAfterFirst() {
byte[] terrainBytes = File.ReadAllBytes(Path.Combine(streamingAssetsPathVar, "terrain/" + Chunk + ".terrain"));
BinaryFormatter bf = new BinaryFormatter();
//FileStream stream = new FileStream(Path.Combine(Application.streamingAssetsPath, "terrain/" + Chunk + ".terrain"), FileMode.Open);
LoadingSavingClass myClass = bf.Deserialize(new MemoryStream(LZMAtools.DecompressLZMAByteArrayToByteArray(terrainBytes))) as LoadingSavingClass;
terrain = myClass.terrain;
}
但是当我加载它时,在测试时启动此功能,整个游戏冻结,我必须等到它加载。我把这个功能放到新的线程中并没有帮助。如果你想看看我如何写线程,它看起来像这样:
Thread t = new Thread(new ThreadStart(loadAfterFirst));
t.Start(); // Starts new thread