Hola realmente necesito ayuda. Estoy usando Unity y tengo este código para exportar obj. pero también quiero que mi obj contenga texturas. Puedo exportar la textura como jpg pero no la quiero, necesito el archivo mtl. quiero que obj tenga esas texturas con él y no con jpg. Entonces, ¿cómo puedo hacer mtl para mi archivo obj exportado?
using System.Collections; using System.IO; using System.Text; using System; public class ObjExporter { public static string MeshToString(MeshFilter mf) { Mesh m = mf.mesh; Material[] mats = mf.GetComponent<Renderer>().sharedMaterials; StringBuilder sb = new StringBuilder(); //sb.Append("g ").Append(mf.name).Append("\n"); foreach (Vector3 v in m.vertices) { sb.Append(string.Format("v {0} {1} {2}\n", vx, vy, vz)); } sb.Append("\n"); foreach (Vector3 v in m.normals) { sb.Append(string.Format("vn {0} {1} {2}\n", vx, vy, vz)); } sb.Append("\n"); foreach (Vector3 v in m.uv) { sb.Append(string.Format("vt {0} {1}\n", vx, vy)); } for (int material = 0; material < m.subMeshCount; material++) { sb.Append("\n"); sb.Append("usemtl ").Append(mats[material].name).Append("\n"); sb.Append("usemap ").Append(mats[material].name).Append("\n"); int[] triangles = m.GetTriangles(material); for (int i = 0; i < triangles.Length; i += 3) { sb.Append(string.Format("f {0}/{0}/{0} {1}/{1}/{1} {2}/{2}/{2}\n", triangles[i] + 1, triangles[i + 1] + 1, triangles[i + 2] + 1)); } } return sb.ToString(); } public static void MeshToFile(MeshFilter mf, string filename) { using (StreamWriter sw = new StreamWriter(filename)) { sw.Write(MeshToString(mf)); string path = Application.dataPath + "/screenshots/" + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + ".png"; } }}