问题描述
我正在使用双关语2和playfab。每次添加新朋友时,我都会这样做,这会将他添加到playfab列表中,这很好,因为我可以随时添加朋友,这不像双关语2,但我看不到朋友是否在线并获得了朋友房间名称(光子选项)。问题是我从playfab转换为光子。有办法吗? 这是我的playfab代码
private void displayPlayfabFriends(List<PlayFab.ClientModels.FriendInfo> friendCache)
{
foreach (PlayFab.ClientModels.FriendInfo f in friendCache)
{
bool isfound = false;
if(myfriends != null)
{
foreach (PlayFab.ClientModels.FriendInfo g in myfriends)
{
if (f.FriendplayFabId == g.FriendplayFabId)
{
isfound = true;
}
}
}
if(isfound == false)
{
UIFriend listing = Instantiate(uiPrefab,container);
if(listing != null)
{
listing.Initialize(f);
listing.friendNameText.text = f.TitledisplayName;
}
}
}
myfriends = friendCache;
}
这是光子代码
public void Initialize(Photon.Realtime.FriendInfo friendInfo)
{
info = friendInfo;
roomName = $"{infophoton.UserId}";
friendNameText.text = $"{info.UserId}";
if (infophoton.IsOnline)
{
onlineImage.color = onlineColor;
}
else
{
onlineImage.color = offlineColor;
}
}
如何将两者结合起来?
解决方法
我在Photon官方论坛here上回答了。 引用我的回复:
假设您按照我们的建议将PlayFab与Photon集成在一起 它将,Photon UserID和PlayFab ID将相同。这样就可以缓存 字典中的朋友,其键设置为他们的FriendID,即 光子UserID / PlayFab ID,并作为值创建一个新类,该类 结合了来自PlayFab的FriendInfo和Photon的FriendInfo的信息。然后 定期调用PlayFab的GetFriends,在其回调中更新 缓存的朋友列表并致电Photon的FindFriends(如果适用) /在房间外面)。在FindFriends的回调中更新缓存 朋友的列表并更新用户界面。