2015-03-13 49 views
0

如果我提出非常基本的問題,我仍然是一個光子網絡的初學者,但我找不到類似的案例,並且會很感激支持經歷過相同問題的人。邀請朋友到一個房間(PlayFab,PUN +和Unity)

我正在爲遊戲添加新功能。我想給選手邀請他們的朋友加入一個房間。

特徵的準確描述是這樣的: 玩家A創建了一個房間,並邀請玩家B的加入,玩家B必須滿足這些條件才能看到這樣的邀請: 1.是播放器的Facebook好友A. 2.在線並在大廳內。

我遵循的方法是這樣做的: 我使用PlayFab來保存玩家數據和在線狀態。 用戶第一次使用Facebook登錄時,創建了該播放器的PlayFab記錄,該條目包括Facebook朋友列表和其他數據的在線狀態列表(每個播放器的在線狀態使用OnDisconnectedFromPhoton和OnJoinedLobby回調更新)

當玩家A點擊房間內的邀請按鈕時,會顯示他的在線朋友列表(獲取Facebook好友列表 - >檢查PlayFab記錄以檢索他們的在線狀態 - >顯示在線的Facebook好友)。然後玩家選擇他們想要邀請的朋友。

這是我遇到困難的部分。有沒有辦法將邀請信息發送給包含房間號碼和受邀userId的大廳中的該玩家? 例如,我正在考慮將消息發送給大廳中的所有玩家,然後僅將其顯示給玩家B(如果userId包含在消息==玩家B userId中,則顯示該消息)。但我希望有一個更有效的解決方案,因爲每次發送邀請時,發送消息給大廳中的所有玩家似乎都是一種矯枉過正!

你能想出一個更好的方法來做到這一點嗎? 我很樂意提供建議,並會感謝您的想法!

回答

0

您不能發送消息給Photon大廳的玩家。您應該通過其他頻道邀請玩家,例如fb api消息。被邀請的用戶從消息中獲取房間名稱並且可以加入房間。

0

在移動平臺上,常見的方法是使用推送通知來啓用此功能。另一種方式是使用共享組數據(https://api.playfab.com/Documentation/Client#Shared%20Group%20Data)向其他人發送邀請,並讓客戶端定期「檢查」以檢查這些消息。使用此功能,您可以使用接收邀請的用戶的PlayFab ID(以及可能的其他消息)創建共享組數據,並使用邀請用戶的PlayFab ID作爲鍵/值對的鍵添加消息您正在寫入共享組數據。

而不是處理添加播放器到共享組數據(它允許客戶端直接寫入它)的麻煩,另一個簡化將是使用雲腳本(https://playfab.com/docs/using-cloud-script/)來控制寫入的內容。