public override void Read(ES2Reader reader, object obj) { Mesh mesh = (Mesh)obj; reader.settings.MeshSettingsFromByteArray(reader.ReadMeshSettings()); #if UNITY_2017_3 mesh.indexFormat = (UnityEngine.Rendering.IndexFormat)reader.reader.ReadInt32(); #endif mesh.vertices = reader.ReadArray <Vector3>(new ES2_Vector3()); mesh.triangles = reader.ReadArray <int>(new ES2_int()); // Save submeshes if (reader.settings.saveSubmeshes) { mesh.subMeshCount = reader.reader.ReadInt32(); for (int i = 0; i < mesh.subMeshCount; i++) { mesh.SetTriangles(reader.ReadArray <int>(new ES2_int()), i); } } // Save skinning if (reader.settings.saveSkinning) { mesh.bindposes = reader.ReadArray <Matrix4x4>(); mesh.boneWeights = reader.ReadArray <BoneWeight>(); } if (reader.settings.saveNormals) { mesh.normals = reader.ReadArray <Vector3>(new ES2_Vector3()); } else { mesh.RecalculateNormals(); } if (reader.settings.saveUV) { mesh.uv = reader.ReadArray <Vector2>(new ES2_Vector2()); } if (reader.settings.saveUV2) { mesh.uv2 = reader.ReadArray <Vector2>(new ES2_Vector2()); } if (reader.settings.saveTangents) { mesh.tangents = reader.ReadArray <Vector4>(new ES2_Vector4()); } if (reader.settings.saveColors) { mesh.colors32 = reader.ReadArray <Color32>(new ES2_Color32()); } }