public static Mesh FromUnity(UnityEngine.Mesh unity_mesh) { Mesh mesh = null; if (unity_mesh != null) { mesh = new Mesh(); if (unity_mesh.name != null) { mesh.name = unity_mesh.name; } if (unity_mesh.vertices != null) { mesh.vertices = unity_mesh.vertices; } if (unity_mesh.normals != null) { mesh.normals = unity_mesh.normals; } if (unity_mesh.tangents != null) { mesh.tangents = unity_mesh.tangents; } if (unity_mesh.uv != null) { mesh.uv1 = unity_mesh.uv; } if (unity_mesh.uv2 != null) { mesh.uv2 = unity_mesh.uv2; } if (unity_mesh.colors != null) { mesh.colors = unity_mesh.colors; } int nb_submeshes = unity_mesh.subMeshCount; if (nb_submeshes > 0) { mesh.submeshes = new SubMesh[nb_submeshes]; for (int i = 0; i < nb_submeshes; i++) { SubMesh submesh = new SubMesh(); submesh.topology = unity_mesh.GetTopology(i); submesh.triangles = unity_mesh.GetIndices(i); mesh.submeshes[i] = submesh; } } } return(mesh); }