邀请朋友到一个房间(PlayFab,PUN +和Unity)

时间:2015-03-13 18:02:11

标签: unity3d multiplayer photon

我正在游戏中添加新功能。我想让玩家邀请他们的朋友加入一个房间。

该功能的确切描述如下: 玩家A创建一个房间并邀请玩家B加入,玩家B必须满足这些条件才能看到邀请: 1.是播放器A的facebook好友。 2.在线和在大厅内。

我接下来要采取的方法如下: 我正在使用PlayFab来保存玩家数据和在线状态。 用户首次使用Facebook登录时,会创建此玩家的PlayFab记录,此条目包括Facebook好友列表和其他数据中的在线状态(使用OnDisconnectedFromPhoton和OnJoinedLobby回调更新每个玩家的在线状态)

当玩家A点击房间内的邀请按钮时,会显示他的在线朋友列表(获取Facebook好友列表 - >检查PlayFab记录以检索他们的在线状态 - >显示在线Facebook好友)。然后玩家选择他们想邀请的朋友。

这是我遇到困难的部分。有没有办法将邀请信息发送到大厅的这个播放器,其中包括房间号和邀请的userId? 例如,我正在考虑将消息发送给大厅中的所有玩家,然后仅将其显示给玩家B(如果userId包含在消息中,则显示消息==玩家B userId)。但是我希望有一个更有效的解决方案,因为每次发送邀请时,向大厅的所有玩家发送消息看起来有点过分了!

你能想出一个更好的方法吗?

2 个答案:

答案 0 :(得分:1)

您无法向Photon大厅的播放器发送消息。您应该通过其他频道邀请玩家,例如fb api消息。受邀用户从邮件中获取房间名称,并可以加入房间。

答案 1 :(得分:1)

在移动平台上,常见的方法是使用推送通知来启用此功能。另一种方法是使用共享组数据(https://api.playfab.com/Documentation/Client#Shared%20Group%20Data)向其他人发布邀请,并让客户定期做心跳"心跳"检查这些消息。使用此功能,您可以使用正在接收邀请的用户的PlayFab ID(以及可能的其他消息)创建共享组数据,并使用邀请它们作为键/值对的键的用户的PlayFab ID添加消息您正在写入共享组数据。

而不是处理将玩家添加到共享组数据(允许客户端直接写入)的麻烦,另一个简化是使用Cloud Script(https://playfab.com/docs/using-cloud-script/)来控制获取的内容写入。