Example #1
0
    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();
    }
Example #2
0
    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();
    }
Example #3
0
 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);
 }