/// <summary> /// 读取 /// </summary> /// <param name="reader"></param> /// <param name="header"></param> public void Load(MyReader reader, int header) { //if (coroutine != null) //{ // StopCoroutine(coroutine); //} ClearMap(); int x = 20, z = 15; if (header >= SaveLoadModule.version_1) { x = reader.ReadInt32(); z = reader.ReadInt32(); } bool isWrapping = header >= SaveLoadModule.version_5 && reader.ReadBoolean(); if (x != cellCountX || z != cellCountZ || wrapping != isWrapping) { if (!CreateMap(x, z, isWrapping)) { return; } } var originalImmediateMode = cellShaderData.ImmediateMode; cellShaderData.ImmediateMode = true; foreach (var item in cells) { item.Load(reader, header); } foreach (var item in cells) { item.RefreshPosition(); item.Refresh(); } if (header >= SaveLoadModule.version_2) { int unitCount = reader.ReadInt32(); for (int i = 0; i < unitCount; i++) { HexUnit.Load(reader, this); } } cellShaderData.ImmediateMode = originalImmediateMode; }