или читая файл с

способ экспортировать сетку в формат stl / obj / fbx во время выполнения и сохранить ее в локальных файлах телефона Android.

Как мне это сделать? Я готов использовать плагин (бесплатно / платно), если он существует.

Ответы на вопрос(1)

Решение Вопроса

так как вы должны прочитать спецификации для каждого формата (stl / obj / fbx) и понять их, чтобы создать их самостоятельно. К счастью, уже есть много плагинов, которые можно использовать для экспорта сетки Unity в stl, obj и fbx.

FBX:

UnityFBXExporter используется для экспорта сетки Unity в 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);
}

СТЛ:

Вы можете использовать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);
}
 Gareth Lam14 окт. 2017 г., 04:31
Спасибо за совет. Я никогда не думал найти плагин в Github ...... Я попробую все эти плагины позже сегодня.
 Gareth Lam15 окт. 2017 г., 11:24
Я хотел бы разработать приложение для Android (для школьного проекта), которое позволит пользователям создавать собственные чехлы для телефонов, а затем создавать файлы трехмерной геометрии в формате STL / OBJ, которые готовы к 3D-печати. (Извините, что я не уточнил в этом вопросе.) Именно по этой причине мне нужен плагин для экспорта игровых объектов / мешей в файлы stl / obj / fbx во время выполнения в приложении Android. Я пробовал и pb_Stl, и UnityFBXExporter в void Start () (коды, которые вы предлагали). Но когда я включаю свое приложение, а затем я открываю внутреннее хранилище. Я обнаружил, что ничего не было создано.
 Gareth Lam15 окт. 2017 г., 11:28
Я хотел бы знать, могут ли эти коды экспорта быть реализованы в других функциях вместо void Start (). Потому что я хочу создать stl-файл только при нажатии определенной кнопки вместо запуска приложения.
 Programmer15 окт. 2017 г., 14:11
Все ваши комментарии не нужны. Код, который вы видите, является лишь примером использования и может использоваться или вызываться в любое время, если вы поместите их в неStart функция. Вам может понадобиться позвонитьDirectory.Exists а такжеDirectory.CreateDirectory перед сохранением модели или вы столкнетесь сэто проблема. Также сделал опечатку, поставив ".fbx" как расширение всех из них. Теперь исправил это. Смотрите редактирование. Вы можете проверить, работало ли сохранение сFile.Exists или читая файл сFile.ReadAllBytes

Ваш ответ на вопрос