Я работаю над приложением, которому нужно читать файлы формата .obj в hololens во время выполнения.
Точно, я хочу сохранить файл .obj в hololens, когда приложение работает, он должен получить доступ к файлу через файловую систему hololens. Поместить файл в папку активов и загрузить с помощью редактора Unity - это не то, что мне нужно.
Я искал несколько форумов и топиков c, многие из которых дают довольно похожие решения. Я следую некоторым примерам кодов и пишу свои собственные коды для чтения файлов в гололинзе. Однако это не работает.
Соответствующие части моей программы следующие:
В заголовке файла сценария импортируйте пространство имен
#if WINDOWS_UWP
using Windows.Storage;
using Windows.Storage.Pickers;
using System.Threading.Tasks;
#endif
Сценарий который загружает файл obj получает параметр типа потока. Поэтому я реализую эту функцию "OpenFileForRead", которая получает путь к папке и имя файла в качестве параметра, возвращает поток файла.
private static Stream OpenFileForRead(string folderName, string fileName)
{
Stream stream = null;
#if WINDOWS_UWP
Task task = new Task(
async () => {
StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(folderName);
StorageFile file = await folder.GetFileAsync(fileName);
stream = await file.OpenStreamForReadAsync();
});
task.Start();
task.Wait();
#endif
return stream;
}
И я вызываю эту функцию следующим образом:
#if WINDOWS_UWP
string objname = "Model.obj";
Stream stream = OpenFileForRead(ApplicationData.Current.RoamingFolder.Path, objname);
loadedObj = new OBJLoader().Load(stream);
#endif
«ApplicationData.Current.RoamingFolder.Path» сопоставляется с «LocalAppData \ SOMEAPP \ RoamingState» в гололинах.
Поэтому, когда я развернул это приложение в hololens, я буду загружать файл «Model.obj» на портале устройства в папку RoamingState этого приложения. Затем я запускаю это приложение, в идеальных условиях оно должно работать, к сожалению, это не так.
В настоящее время ситуация может быть успешно развернута в приложении hololens и запущена. Другие Gameobjects могут нормально функционировать в hololens, хотя он не может загрузить файл .obj в сцену.
Кстати, "new OBJLoader (). Load (stream);" был протестирован в Unity Editor, который могу успешно прочитать и загрузить файл .obj в локальную папку на моем P C. Поэтому, скорее всего, проблема заключается в том, как я читаю файлы в гололинзе. Но я, конечно же, следую решениям, данным в других похожих темах. Я запутался и не знаю, что именно не так?
Вот некоторые сайты, на которые я ссылался и скопировал некоторые коды:
https://longqian.me/2017/02/08/hololens-file-transfer/
https://forums.hololens.com/discussion/1862/how-to-deploy-and-read-data-file-with-app
https://github.com/Maximilian-Winter/ObjHololensViewer
https://github.com/jmher019/Hololens-OBJRenderer
Почти все выше, используйте аналогичные коды для чтения файлов в hololens, хотя я не могу получить их на своем устройстве, это так расстраивает!
Untiy Editor: 2018.4.0f1
Hololens: 1st gen