r4m0n

OBJ Exporter?

Aug 19th, 2016
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.30 KB | None | 0 0
  1.     public static string MeshToString(MeshFilter mf)
  2.     {
  3.         Mesh m = mf.mesh;
  4.         Material[] mats = mf.renderer.sharedMaterials;
  5.  
  6.         StringBuilder sb = new StringBuilder();
  7.  
  8.         sb.Append("g ").Append(mf.name).Append("\n");
  9.         foreach (Vector3 v in m.vertices)
  10.         {
  11.             sb.Append(string.Format("v {0} {1} {2}\n", v.x, v.y, v.z));
  12.         }
  13.         sb.Append("\n");
  14.         foreach (Vector3 v in m.normals)
  15.         {
  16.             sb.Append(string.Format("vn {0} {1} {2}\n", v.x, v.y, v.z));
  17.         }
  18.         sb.Append("\n");
  19.         foreach (Vector3 v in m.uv)
  20.         {
  21.             sb.Append(string.Format("vt {0} {1}\n", v.x, v.y));
  22.         }
  23.         for (int material = 0; material < m.subMeshCount; material++)
  24.         {
  25.             sb.Append("\n");
  26.             sb.Append("usemtl ").Append(mats[material].name).Append("\n");
  27.             sb.Append("usemap ").Append(mats[material].name).Append("\n");
  28.  
  29.             int[] triangles = m.GetTriangles(material);
  30.             for (int i = 0; i < triangles.Length; i += 3)
  31.             {
  32.                 sb.Append(string.Format("f {0}/{0}/{0} {1}/{1}/{1} {2}/{2}/{2}\n",
  33.                     triangles[i] + 1, triangles[i + 1] + 1, triangles[i + 2] + 1));
  34.             }
  35.         }
  36.         return sb.ToString();
  37.     }
Advertisement
Add Comment
Please, Sign In to add comment