UWP и HoloLens Unet [команда]

У меня есть два разных проекта Unity, один - приложение HoloLens, а другой - настольное приложение. Моя цель - управлять объектом в приложении HoloLens через настольное приложение. На данный момент у меня работает Unet, когда HoloLens является хостом, а рабочий стол - клиентом. Управление через HoloLens и передача этого в настольное приложение работает, но не наоборот. Я не могу подключиться к настольному приложению, когда оно служит сервером. Я предполагаю, что это как-то связано с закреплением объектов в мировом положении, но я не уверен.

Кто-то еще предположил, что HoloLens может быть сервером и что клиент может отправлять команды на сервер с помощью методов с реализацией [Command]. Я добавил playerPrefab в настольное приложение, чтобы он распознавался как проигрыватель, который позволял мне отправлять эти команды. К сожалению, это не работает. Это приводит к следующему сообщению об ошибке: «Объект сцены создания не найден для 1». Добавление префаба в сцену и перетаскивание его в NetworkManager в качестве игрока, но в результате получается объект, который не является фактическим игроком (что не позволяет мне отправлять команды на сервер).

Я нашел другой подход: предоставление полномочий неигровому объекту. Я пытался сделать это следующим образом:

  1. Запустите сервер на HoloLens
  2. Подключитесь к настольному приложению
  3. Вызов RPC-метода для назначения полномочий клиента

Это, к сожалению, приводит к другому сообщению об ошибке: «Не обнаружен приемник для входящих [-1367249836] в Liver (UnityEngine.GameObject), сервер и клиент должны иметь одинаковые экземпляры NetworkBehaviour [netId = 1]»

В основном я хочу добиться того, чтобы объект, не относящийся к игроку (поскольку настольное приложение используется исключительно для управления объектом в HoloLens), мог вносить изменения в объект на сервере (HoloLens).


person Sou    schedule 30.03.2018    source источник
comment
Это не должно быть двух разных приложений. Они должны быть одинаковыми.   -  person Dtb49    schedule 30.03.2018
comment
Причина, по которой я выбрал два разных приложения, заключается в том, что в одном проекте будут применяться настройки смешанной реальности, а в другом - нет. Разве использование того же приложения не приведет к ошибке для настольного приложения? Могу ли я динамически применять правильные настройки с помощью SystemInfo.deviceType?   -  person Sou    schedule 31.03.2018
comment
Если вы не используете один и тот же проект, вы либо не увидите, что происходит на одном конце, либо получите кучу ошибок. Вы можете создать их для таргетинга на разные устройства, но они должны быть частью одного проекта. Большинство настроек смешанной реальности проверяются во время выполнения.   -  person Dtb49    schedule 31.03.2018


Ответы (1)


Я согласен с приведенным выше комментарием, что он должен разрабатываться в том же проекте. Мы успешно создали приложение удаленной поддержки на работе, которое позволило пользователю настольного компьютера взаимодействовать с пользователем HoloLens. Мы достигли этого, разработав две сцены внутри одного проекта Unity.

  1. Сцена рабочего стола
  2. Сцена HoloLens

Таким образом, мы смогли использовать одни и те же сценарии, чтобы приложение работало на всех устройствах. (Нам пришлось добавить несколько операторов if, чтобы сделать часть кода специфичной для устройства). Что касается настольной части, то при построении 3D-сцены проблем не возникло.

person TheCascadian    schedule 01.04.2018
comment
Большое спасибо. Чтобы заставить его работать, разделив его на две сцены в одном проекте, как вы предложили. - person Sou; 03.04.2018