Синхронизация Unity Networking через SyncVar

Я пишу приложение Unity, которое соединяет два мобильных устройства с помощью Unity Networking. Один действует как Мастер (хост), а другой - как Ведущий (Клиент). Приложение должно синхронно делать фотографии с каждого устройства.

Сейчас я использую SyncVars для достижения этой цели. Каждые десять кадров сервер меняет SyncVar, затем вызывается метод onChange этой переменной, и Хост и Клиент делают фотографию и отправляют ее Хосту с помощью методов [Command].

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

Есть ли какая-либо другая синхронизация в UNET для этого варианта использования?

Заранее спасибо, Мирко

2 ответа

Решение

Попробуйте использовать метод RPC (отправляется каждому клиенту с сервера) для съемки. Поскольку сервер также действует как сам клиент, оба должны запускать метод RPC (почти все) синхронно. Когда оба устройства находятся в одной и той же сети, не должно быть такой большой задержки при съемке изображения на клиенте.

Вы можете иметь метод на обоих устройствах, который вызывается в зависимости от времени. Поэтому установите оба устройства, чтобы сделать снимок в 15:43:45, например.

Затем этот метод вызывается от одного к другому, и время устанавливается заранее.

Чем больше синхронизированы их часы, тем лучше. Возможно, вы могли бы подключить их к онлайн-часам.

Другие вопросы по тегам