Открыть браузер файлов в приложении Unity на HoloLens 2 - PullRequest
0 голосов
/ 10 марта 2020

Таким образом, может показаться, что это будет простое решение, но, поскольку я не могу найти никакой документации о том, как именно это сделать, это практически то же самое, что и перебор паролей.

Среда

  • Версии Unity: 2019.3.1, 2019.3.4 (текущая)
  • Платформа: универсальная Windows Платформа
  • MRTK: 2,2, 2,3 (текущая)
  • ОС HoloLens 2: Windows Голография c Операционная система

Что я пытаюсь выполнить sh

  • Я нажимаю sh кнопку, и в моей сцене Unity появляется файловый браузер / проводник

Проблема

  • Я не могу запустить файловый браузер / проводник в HoloLens 2.

Фон / Контекст

С MRTK 2 / HoloLens 2 вы можете запускать внешние приложения, не выходя из приложения Unity. То, что HoloLens 1 не мог сделать. Microsoft предоставляет доказательство этого в своем пакете примеров Unity: Assets/MixedRealityToolkit.Examples/Demos/HandTracking/Scenes/HandInteraction.Examples.unity после того, как вы загрузили внешние пакетыорта и .Examples в свой проект Unity.

В предоставленной сцене из всех представленных объектов присутствуют две кнопки вправо, которые при нажатии запускают Edge Browser или приложение настроек ОС. Это достигается с помощью сценария, связанного с запуском URI, который запускает .OpenURL в строке, предоставленной пользователем через инспектор GameObject.

GameObject inspector screenshot of the button that opens Edge Browser GameObject inspector screenshot of the button that opens Settings

И фрагмент кода (предоставленный Microsoft в MRTK2), который запускает введенную пользователем строку:

public void Launch(string uri){
    ...
    Application.OpenURL(uri);
    ...
}

Что я уже пробовал

Из-за того, насколько похожи Windows 10 на рабочем столе и Windows Holographi c Операционная система, когда эти кнопки нажимаются, когда Unity находится в Режим воспроизведения, кнопки полностью работают, запуск браузера по умолчанию на компьютере и приложение настроек для Windows 10. В этом предположении я посмотрел, как открыть файловый браузер / проводник, и могу успешно запустить его со строкой explorer в текстовом поле, но only на рабочем столе Windows 10. Это не работает при работе на HoloLens 2. Неудивительно, что есть различия между Windows 10 и Windows Holographi c Операционная система, поэтому тестирование это немного утомительно, так как мне нужно собирать каждый раз, когда мне нужно протестировать. Пока что строки, которые я протестировал: explorer explorer.exe ms-explorer ms-browser ms-storage ms-storage.storagefile:// (and without the ://) https://C:\ И так далее ...

Думая, что Application.OpenURL не может быть единственным / лучшим маршрутом, я также попробовал другой сценарий:

public void Opener(){
    System.Diagnostics.Process.Start("explorer.exe");
}

Но еще раз, этот подход работает идеально на Windows 10 Desktop, но не в HoloLens 2. Я мог бы продолжить с большим количеством примеров и объяснений, но я уже обеспокоен тем, что мне придется переопределить этот пост как статью в Википедии с той длиной, к которой он уже получен.

И это все. Я в тупик, где go отсюда. Поэтому, пока я продолжаю случайным образом стрелять из ружья в Googleverse и посмотреть, какие наполовину связанные фрагменты я могу найти, чтобы проверить и доказать, что они работают на рабочем столе, а не на HoloLens 2, мысли / предложения? Я не верю, что это сложная проблема / решение. Но это очень специфический c тот, который, насколько я могу судить, не имеет никакой документации по причине того, насколько новым и дефицитным является HoloLens 2.

(Также я не могу создать новый тег для HoloLens 2, недостаточно хороший человек. Поэтому сейчас я должен использовать обычный тег hololens)

1 Ответ

0 голосов
/ 12 марта 2020

У меня были кое-какие сообщения от службы поддержки разработчиков в Microsoft, и они были чрезвычайно полезны в раскрытии дополнительной информации по этому вопросу, и мы согласились, что было бы неплохо документировать это здесь в случае, если кто-то столкнется с этой потребностью / проблемой в будущем. В настоящее время нет никакого способа получить доступ к собственному файловому браузеру из приложения Unity на HoloLens 2. Прежде чем переходить к решению третьей стороны, лучше всего использовать FileOpenPicker: https://docs.microsoft.com/en-us/windows/mixed-reality/app-model#file -выборщики

Помимо полностью нативных решений, следующим лучшим вариантом действий является использование стороннего актива из хранилища активов. Из-за моих ограничений среды разработки / работы я не уверен, что лично смогу использовать этот метод, но для всех остальных это жизнеспособный курс действий.

Я считаю это официальным ответим за текущее состояние HoloLens 2, но будем рады его пересмотреть, если ситуация изменится в будущем.

tl; dr версия:

В настоящее время (начало 2020 г.) исходный файл File Explorer недоступен для приложения, и наилучшим / ближайшим собственным решением является использование FileOpenPicker или сторонних ресурсов на Unity Asset Store.
...