У меня есть два разных проекта Unity, один - приложение HoloLens, а другой - настольное приложение. Моя цель - управлять объектом в приложении HoloLens через настольное приложение. На данный момент у меня работает Unet, когда HoloLens является хостом, а рабочий стол - клиентом. Управление через HoloLens и передача этого в настольное приложение работает, но не наоборот. Я не могу подключиться к настольному приложению, когда оно служит сервером. Я предполагаю, что это как-то связано с закреплением объектов в мировом положении, но я не уверен.
Кто-то еще предположил, что HoloLens может быть сервером и что клиент может отправлять команды на сервер с помощью методов с реализацией [Command]. Я добавил playerPrefab в настольное приложение, чтобы он распознавался как проигрыватель, который позволял мне отправлять эти команды. К сожалению, это не работает. Это приводит к следующему сообщению об ошибке: «Объект сцены создания не найден для 1». Добавление префаба в сцену и перетаскивание его в NetworkManager в качестве игрока, но в результате получается объект, который не является фактическим игроком (что не позволяет мне отправлять команды на сервер).
Я нашел другой подход: предоставление полномочий неигровому объекту. Я пытался сделать это следующим образом:
- Запустите сервер на HoloLens
- Подключитесь к настольному приложению
- Вызов RPC-метода для назначения полномочий клиента
Это, к сожалению, приводит к другому сообщению об ошибке: «Не обнаружен приемник для входящих [-1367249836] в Liver (UnityEngine.GameObject), сервер и клиент должны иметь одинаковые экземпляры NetworkBehaviour [netId = 1]»
В основном я хочу добиться того, чтобы объект, не относящийся к игроку (поскольку настольное приложение используется исключительно для управления объектом в HoloLens), мог вносить изменения в объект на сервере (HoloLens).