我正在寻找一种在运行时将网格导出为stl/obj/fbx格式并将其保存在Android手机的本地文件中的方法.
I am looking for a way to export a mesh into stl/obj/fbx format at runtime and save it on local files of an Android phone.
我该怎么做?我愿意使用免费/付费的插件(如果存在).
How do I do this? I am willing to use a plugin(free/paid) if it exist.
推荐答案这真的很复杂,因为您必须阅读每种格式(stl/obj/fbx)的规范并理解它们才能自己制作.幸运的是,已经有很多插件可用于将Unity mesh导出到stl,obj和fbx.
This is really complicated since you have to read the specifications for each each format (stl/obj/fbx) and understand them in order to make one yourself. Luckily, there are many plugins out there already that can be used to export Unity mesh to stl, obj and fbx.
FBX :
UnityFBXExporter 用于在运行时将Unity网格导出到fbx
UnityFBXExporter is used to export Unity mesh to fbx during run-time.
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 :
对于obj,使用 ObjExporter .
For obj, ObjExporter is used.
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 :
您可以将 pb_Stl 插件用于STL格式.
You can use the pb_Stl plugin for STL format.
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); }更多推荐
在运行时将网格转换为stl/obj/fbx
发布评论