2017-10-13 2 views

Répondre

2

Ceci est vraiment compliqué puisque vous devez lire les spécifications pour chaque format (stl/obj/fbx) et les comprendre pour en faire un vous-même. Heureusement, il existe déjà de nombreux plugins qui peuvent être utilisés pour exporter le maillage Unity vers stl, obj et fbx.

FBX:

UnityFBXExporter est utilisé pour exporter l'unité à mailles FBX pendant l'exécution.

public GameObject objMeshToExport; 

void Start() 
{ 
    string path = Path.Combine(Application.persistentDataPath, "data"); 
    path = Path.Combine(path, "carmodel"+ ".fbx"); 

    //Create Directory if it does not exist 
    if (!Directory.Exists(Path.GetDirectoryName(path))) 
    { 
     Directory.CreateDirectory(Path.GetDirectoryName(path)); 
    } 

    FBXExporter.ExportGameObjToFBX(objMeshToExport, path, true, true); 
} 

OBJ:

Pour obj, ObjExporter est utilisé.

public GameObject objMeshToExport; 

void Start() 
{ 
    string path = Path.Combine(Application.persistentDataPath, "data"); 
    path = Path.Combine(path, "carmodel" + ".obj"); 

    //Create Directory if it does not exist 
    if (!Directory.Exists(Path.GetDirectoryName(path))) 
    { 
     Directory.CreateDirectory(Path.GetDirectoryName(path)); 
    } 

    MeshFilter meshFilter = objMeshToExport.GetComponent<MeshFilter>(); 
    ObjExporter.MeshToFile(meshFilter, path); 
} 

STL:

Vous pouvez utiliser le plug-in pb_Stl pour le format STL.

public GameObject objMeshToExport; 

void Start() 
{ 
    string path = Path.Combine(Application.persistentDataPath, "data"); 
    path = Path.Combine(path, "carmodel" + ".stl"); 

    Mesh mesh = objMeshToExport.GetComponent<MeshFilter>().mesh; 

    //Create Directory if it does not exist 
    if (!Directory.Exists(Path.GetDirectoryName(path))) 
    { 
     Directory.CreateDirectory(Path.GetDirectoryName(path)); 
    } 


    pb_Stl.WriteFile(path, mesh, FileType.Ascii); 

    //OR 
    pb_Stl_Exporter.Export(path, new GameObject[] { objMeshToExport }, FileType.Ascii); 
} 
+0

Merci pour votre conseils. Je n'ai jamais pensé à trouver un plugin dans Github ...... Je vais essayer tous ces plugins plus tard aujourd'hui. –

+0

Je voudrais développer une application Android (pour un projet d'école) qui permet aux utilisateurs de concevoir leurs propres cas de téléphone, puis générer des fichiers de géométrie 3D au format STL/OBJ, qui est prêt pour l'impression 3D. (Désolé que je n'ai pas précisé dans la question.) C'est la principale raison pour laquelle j'ai besoin d'un plugin pour exporter des gameobjects/meshes vers des fichiers stl/obj/fbx à l'exécution dans l'application Android. J'ai essayé à la fois pb_Stl et UnityFBXExporter dans void Start() (codes que vous avez suggérés). Mais quand j'allume mon application, puis j'ouvre le stockage interne. J'ai trouvé que rien n'a été créé. –

+0

Je voudrais savoir si ces codes d'exportation pourraient être implémentés dans d'autres fonctions au lieu de void Start(). Parce que ce que je veux réaliser est de générer un fichier stl seulement quand un bouton spécifique est cliqué au lieu du début de l'application. –