如何在playfab和光子朋友的信息之间结合

问题描述

我正在使用双关语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的回调中更新缓存 朋友的列表并更新用户界面。