无法在Hololens中读取文件

问题描述 投票:-1回答:1

我正在开发一个需要在运行时读取hololens中的.obj格式文件的应用程序。

准确地说,我要做的是将.obj文件保存在hololens中,当应用程序运行时,它应该通过hololens文件系统访问该文件。我不想要将文件放在资产文件夹中并由Unity编辑器加载。

我已经搜索了多个论坛和主题线程,许多都提供了非常相似的解决方案。我遵循一些示例代码,并编写自己的代码来读取hololens中的文件。但是,它不起作用。

我程序的相关部分如下:

在脚本文件的开头,导入名称空间

    #if WINDOWS_UWP
    using Windows.Storage;
    using Windows.Storage.Pickers;
    using System.Threading.Tasks;
    #endif

加载obj文件的脚本接收Stream类型参数。因此,我实现了此功能“ 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”映射到hololens中的“ LocalAppData \ SOMEAPP \ RoamingState”。

因此,当我在hololens中部署此应用程序时,我会将设备门户中的“ Model.obj”文件上传到此应用程序的RoamingState文件夹中。然后我运行此应用程序,在理想情况下,它应该可以运行,不幸的是,它不能运行。

当前情况是,该应用程序可以成功部署到hololens并运行。其他游戏对象可以在hololens中正常运行,尽管它无法将.obj文件加载到场景中。

顺便说一下,“ new OBJLoader()。Load(stream);”已在Unity编辑器中进行了测试,该编辑器可以成功读取并加载PC上本地文件夹中的.obj文件。因此,问题很可能出在我读取hololens文件的方式上。但是我肯定会遵循其他类似主题给出的解决方案。我很困惑,不知道到底出了什么问题?

这里有一些我引用并复制了以下代码的网站:

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编辑器:2018.4.0f1

Hololens:第一代

我正在开发一个需要在运行时读取hololens中的.obj格式文件的应用程序。准确地说,我想做的是将.obj文件保存在hololens中,当应用程序运行时,它应该访问...

c# unity3d uwp hololens windows-mixed-reality
1个回答
0
投票

在使用Hololens(v1)和Unity读取数据之前,我遇到了很多问题。我ages

© www.soinside.com 2019 - 2024. All rights reserved.