Синхронизация Unity Networking через SyncVar
Я пишу приложение Unity, которое соединяет два мобильных устройства с помощью Unity Networking. Один действует как Мастер (хост), а другой - как Ведущий (Клиент). Приложение должно синхронно делать фотографии с каждого устройства.
Сейчас я использую SyncVars для достижения этой цели. Каждые десять кадров сервер меняет SyncVar, затем вызывается метод onChange этой переменной, и Хост и Клиент делают фотографию и отправляют ее Хосту с помощью методов [Command].
Я новичок в Unity Networking, так что это моя первая реализация, и я думаю, что это не лучший способ решения этой проблемы.
Есть ли какая-либо другая синхронизация в UNET для этого варианта использования?
Заранее спасибо, Мирко
2 ответа
Попробуйте использовать метод RPC (отправляется каждому клиенту с сервера) для съемки. Поскольку сервер также действует как сам клиент, оба должны запускать метод RPC (почти все) синхронно. Когда оба устройства находятся в одной и той же сети, не должно быть такой большой задержки при съемке изображения на клиенте.
Вы можете иметь метод на обоих устройствах, который вызывается в зависимости от времени. Поэтому установите оба устройства, чтобы сделать снимок в 15:43:45, например.
Затем этот метод вызывается от одного к другому, и время устанавливается заранее.
Чем больше синхронизированы их часы, тем лучше. Возможно, вы могли бы подключить их к онлайн-часам.