Пригласите друга в комнату (PlayFab, PUN + и Unity)

Я добавляю новую функцию в нашу игру. Я хотел бы дать игрокам возможность приглашать своих друзей в комнату.

Точное описание функции выглядит следующим образом: игрок A создает комнату и приглашает игрока B присоединиться, игрок B должен выполнить следующие условия, чтобы увидеть приглашение: 1. является другом игрока A в facebook. 2. онлайн. и внутри вестибюля.

Для этого я использую следующий подход: я использую PlayFab для сохранения данных игроков и онлайн-статуса. При первом входе пользователя в систему с помощью Facebook создается запись PlayFab для этого плеера, эта запись включает список друзей Facebook и статус в сети среди других данных (статус онлайн для каждого игрока обновляется с помощью обратных вызовов OnDisconnectedFromPhoton и OnJoinedLobby)

Когда игрок A нажимает кнопку приглашения внутри комнаты, отображается список его друзей в сети (получить список друзей из Facebook -> проверить записи PlayFab, чтобы узнать их статус в сети -> показать друзей из Facebook, которые находятся в сети). Затем игрок выбирает друзей, которых он хочет пригласить.

Это та часть, с которой у меня проблемы. Есть ли способ отправить этому игроку в лобби сообщение-приглашение, в котором указаны номер комнаты и приглашенный идентификатор пользователя? Например, я думаю о том, чтобы отправить сообщение всем игрокам в лобби, а затем показать его только игроку B (показать сообщение, если userId включен в сообщение == player B userId). Но я надеюсь, что есть более эффективное решение, потому что посылать сообщение всем игрокам в лобби каждый раз при отправке приглашения кажется излишним!

Можете ли вы придумать лучший подход для этого?


person naz89    schedule 13.03.2015    source источник


Ответы (2)


Вы не можете отправить сообщение игроку в лобби Photon. Вы должны пригласить игрока через другой канал, например сообщение fb api. Приглашенный пользователь получает название комнаты из сообщения и может присоединиться к ней.

person photonians    schedule 30.04.2015

На мобильных платформах распространенным подходом является использование push-уведомлений для включения этого. Другой способ - использовать общие данные группы (https://api.playfab.com/Documentation/Client#Shared%20Group%20Data), чтобы публиковать приглашения другим пользователям, а клиент периодически проверяет наличие этих сообщений. Используя это, вы можете создать общие данные группы, используя идентификатор PlayFab пользователя, который получает приглашение (и, возможно, другие сообщения), и добавить сообщение, используя идентификатор PlayFab ID пользователя, который их приглашает, в качестве ключа для пары ключ / значение. вы пишете в общие данные группы.

И вместо того, чтобы иметь дело с хлопотами, связанными с добавлением игроков в общие данные группы (что позволяет клиентам затем писать в них напрямую), еще одним упрощением будет использование облачного сценария (https://playfab.com/docs/using-cloud-script/), чтобы контролировать, что будет написано.

person Brendan Vanous    schedule 27.08.2015