public static void ExportOBJ(MeshObject mesh) { MeshObjectSerializable meshCopy = new MeshObjectSerializable(mesh); //StreamWriter writer = new StreamWriter(filePath + ".obj", false); //writer. StringBuilder exportText = new StringBuilder(); foreach (VertexSerializable vert in meshCopy.vertices) { string line = $"v {vert.pos.x} {vert.pos.y} {vert.pos.z}"; exportText.AppendLine(line); } foreach (FaceSerializable face in meshCopy.faces) { string line = $"f"; foreach (int index in face.verts) { line += " " + (index + 1); } exportText.AppendLine(line); } byte[] objBytes = ASCIIEncoding.ASCII.GetBytes(exportText.ToString()); DownloadFile(objBytes, objBytes.Length, "model.obj"); //writer.Close(); }
public static void SaveMesh(MeshObject mesh) { MeshObjectSerializable meshCopy = new MeshObjectSerializable(mesh); BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Open(GetFullFilePath(), FileMode.Create); bf.Serialize(file, meshCopy); file.Close(); }
public static MeshObject LoadMesh(MeshFilter meshFilter, MeshCollider meshCollider) { if (File.Exists(GetFullFilePath())) { BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.OpenRead(GetFullFilePath()); MeshObjectSerializable mesh_ = (MeshObjectSerializable)bf.Deserialize(file); MeshObject mesh = mesh_.ToMeshObject(meshFilter, meshCollider); return(mesh); } else { Debug.Log($"Cannot load because file {GetFullFilePath()} does not exist"); } return(null); }