Я создал собственное приложение для наложения панели, которое позволяет мне изменять высоту игровой зоны во время игры, используя привязку контроллера.
Я использую OpenVR API в C # поверх Valve.VR, я инициализирую это приложение с помощью следующего кода: (сжато для простоты)
OpenVR.Init(ref error, EVRApplicationType.VRApplication_Overlay);
OpenVR.GetGenericInterface(OpenVR.IVRCompositor_Version, ref error);
OpenVR.GetGenericInterface(OpenVR.IVROverlay_Version, ref error);
CVROverlay overlay = OpenVR.Overlay;
ulong overlayHandle = 0;
ulong thumbnailHandle = 0;
overlay.SetOverlayFromFile(thumbnailHandle, @"image.png");
overlay.CreateDashboardOverlay("OvrName", "OvrName", ref overlayHandle, ref thumbnailHandle);
overlay.ShowOverlay(overlayHandle);
Это нормально работает, я могу запустить свое приложение, которое запускает SteamVR, а затем запустить игру. Но проблема заключается в том, что если я запускаю другую игру, мое оверлейное приложение закрывается и не перезапускается, потому что SteamVR не запускает его автоматически.
В разделе «Настройки SteamVR»> «Мои приложения» мое приложение отображается как наложенное приложение, и я отмечаю флажок, чтобы оно запускалось автоматически, но, похоже, это ничего не делает. Когда я перезапускаю SteamVR, мое приложение не запускается, и если я снова проверяю настройки, флажок снят.
Я заметил, что есть следующая строка кода, которая предположительно делает возможным автоматический запуск:
OpenVR.Applications.SetApplicationAutoLaunch("OvrName", true);
Первый параметр - это pchAppKey, я не уверен, что именно он должен быть установлен, когда я запускаю свое приложение с этой строкой кода, я получаю сообщение об ошибке с «VRApplicationError_UnknownApplication».
Я предполагаю, что в Steam где-то хранятся ключи для приложений, но я не уверен, каким образом я должен сгенерировать их для своего приложения, так как мое приложение автономно, а не удалено через Steam.
Документация по этому материалу кажется несуществующей, и поиски в Google не дают результатов. Надеюсь, что кто-то здесь имел опыт с этим, спасибо.