我正在尝试在Hololens上开发一个Unity应用程序,该应用程序需要在运行时实例化一些3D模型。
我当时在考虑使用OneDrive来存储统一的AssetBundle并在需要时加载,只需使用本地路径即可。 我面临的问题是Hololens具有不同的文件系统结构,而UWP应用程序只能访问某些目录。
我已经读过Trouble with FilePickers in Unity Hololens development,Filepicker for Hololens: List available filepickers?和App to app interactions - File pickers。
我了解到,为了打开OneDrive目录,我需要在Hololens上安装OneDrive应用程序,然后将我的Unity应用程序注册到OneDrive的fileOpenPicker
合同中,但是我不知道该怎么做。
在普通的UWP应用程序中,我不需要使用精确的文件选择器,因此不会出现此问题。
我不知道如何将我的应用程序注册到OneDrive的fileOpenPicker
以便访问OneDrive应用程序目录。
答案 0 :(得分:0)
如果您不打算开源代码,则可以为此使用Clayton的Windows Store Native资产:https://assetstore.unity.com/packages/tools/integration/windows-store-native-54715
使用最新的SDK,HoloLens OS和Unity版本与OneDrive配合使用时,我没有任何问题。自从几个月前Redstone的一次重大更新以来,它就得到了支持,这对我来说就是“奏效”的事情之一-我在应用程序中拥有此资产,并且在更新之后,我可以从文件选择器访问OneDrive,而无需需要修改我的代码中的内容。这只是文件夹窗口左上方的下拉菜单。
该资产捆绑包中需要的脚本为:
他们在其网站here上提供了出色的文档。如果您需要他们,我发现他们的支持团队也非常迅速且乐于助人。
要选择您要使用的文件
WSANativeFilePicker.PickSingleFile("Select", WSAPickerViewMode.Thumbnail, WSAPickerLocationId.PicturesLibrary, new[] { ".png", ".jpg" }, result =>
{
if (result != null)
{
byte[] fileBytes = result.ReadBytes();
string fileString = result.ReadText();
}
});
并保存文件
WSANativeFilePicker.PickSaveFile("Save", ".jpg", "Test Image", WSAPickerLocationId.DocumentsLibrary, new List<KeyValuePair<string, IList<string>>>() { new KeyValuePair<string, IList<string>>("Image Files", new List<string>() { ".png", ".jpg" }) }, result =>
{
if (result != null)
{
result.WriteBytes(new byte[2]);
result.WriteText("Hello World");
}
});