-1
我正在寻找一种在运行时将网格导出为stl/obj/fbx格式并将其保存在Android手机的本地文件中的方法。在运行时将网格转换为stl/obj/fbx
我该怎么做?如果存在,我愿意使用插件(免费/付费)。
我正在寻找一种在运行时将网格导出为stl/obj/fbx格式并将其保存在Android手机的本地文件中的方法。在运行时将网格转换为stl/obj/fbx
我该怎么做?如果存在,我愿意使用插件(免费/付费)。
这真的很复杂,因为您必须阅读每种格式(stl/obj/fbx)的规范并理解它们以便自己创建一个。幸运的是,已经有很多插件可以用来将Unity网格导出为stl,obj和fbx。
FBX:
UnityFBXExporter用于导出团结网在运行时为FBX。
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:
对于物镜,使用ObjExporter
。
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格式。
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);
}
感谢您的建议。我从来没有想过在Github上找到插件......我今天晚些时候会尝试所有这些插件。 –
我想开发一个Android应用程序(用于学校项目),它允许用户设计自己的手机外壳,然后生成STL/OBJ格式的3D几何文件,这可以用于3D打印。 (对不起,我没有弄清楚这个问题。) 这就是我需要一个插件在Android应用程序运行时将gameobjects/mesh导出为stl/obj/fbx文件的主要原因。 我在void Start()中尝试了pb_Stl和UnityFBXExporter(您建议的代码)。但是,当我打开我的应用程序,然后打开内部存储。我发现没有创建任何东西。 –
我想知道这些导出代码可以在其他函数中实现,而不是void Start()。因为我想要实现的是仅在单击特定按钮而不是应用程序的开始时才生成stl文件。 –