Unity3D Hololens 访问 Windows.Storage.KnownFolders

Posted

技术标签:

【中文标题】Unity3D Hololens 访问 Windows.Storage.KnownFolders【英文标题】:Unity3D Hololens access Windows.Storage.KnownFolders 【发布时间】:2020-01-15 14:38:12 【问题描述】:

我需要访问 Hololens 上的 PicturesLibrary 文件夹。 文档声明您可以通过“Windows.Storage.PicturesLibrary”来做到这一点

但我无法在我的 Unity 项目中导入命名空间“Windows”,因为它不包含在 UWP 中,也应该可以。 我正在使用 Unity3D 2019.2 和 .net 4.x

如何使用 HoloLens 以正确的方式从文件夹中加载图片?

我尝试了一些类似问题的示例,但没有一个有效,例如 eg.g:

#if !UNITY_EDITOR && UNITY_WINRT_10_0
return Windows.Storage.KnownFolders.PicturesLibrary.Path;                 
#else

【问题讨论】:

【参考方案1】:

@crani 您是否设置了 UWP App Capability declaration 以访问 PicturesLibrary?

请注意,文档提到该功能提供了“枚举”库中文件的访问权限。对于任何 KnowFolder 类型,路径通常都是空字符串。

你需要做这样的事情:

StorageFolder picturesFolder = KnownFolders.PicturesLibrary;
IReadOnlyList<StorageFile> pictures = await picturesFolder.GetFilesAsync();

因此,如果您在#if 指令中包含类似的内容,您应该能够访问文件,但路径是从应用程序中抽象出来的,作为存储文件夹。

【讨论】:

嗨,是的,我已经设置好了,问题是我无法导入“Windows.Storage.KnownFolder”,我什至在 Visual Studio 中看到了二进制文件丢失的警告。但我不明白为什么,因为它应该包含在 UWP 中你如何以正确的方式在正常的 UWP Unity 项目中导入“KnownFolders.PicturesLibrary”? 如果您在 Visual Studio 中创建一个新的 UWP 项目,它将为 UWP 平台引用安装一个 NuGet 包:Microsoft.NETCore.UniversalWindowsPlatform,我相信它引用了包含 Windows.Storage 命名空间的程序集。您是否在构建时将“使用 Windows.Storage”添加到由 Unity 生成的 UWP 项目中? 感谢您的帮助。当我在 Unity 中为 UWP 构建时,它会生成一个 VS 项目,我可以将其部署到我的 HoloLens。我是否必须手动添加对该 NuGet 包的引用?

以上是关于Unity3D Hololens 访问 Windows.Storage.KnownFolders的主要内容,如果未能解决你的问题,请参考以下文章

Hololens - 访问相机框架

Unity3D发布打包系列之——Hololens打包发布

Unity3D UWP Hololens:使用 InputField 的 Web 门户输入而不会弹出 TouchScreenKeyboard

Unity UI on hololens

是否可以访问 hololens 2 上的瞳孔直径等眼动追踪数据?

如何访问 Hololens 3D 对象文件夹中的文件并在运行时将其发送到应用程序