繁体   English   中英

Unity C#ExitGames光子PUN哈希表未正确更新

[英]Unity C# ExitGames Photon PUN Hashtable not updating correctly

我在Unity中使用Photon PUN。 我有一些静态类来跟踪游戏中的玩家数据。 这是更新数据的方法的示例...

public static void IsSeated(bool value)
{
    Room room = PhotonNetwork.room;
    Hashtable PlayerSeat1 = new Hashtable();
    object[] seat1 = (object[])room.customProperties["seat1"];
    seat1[0] = value;
    PlayerSeat1.Add("seat1", seat1);
    room.SetCustomProperties(PlayerSeat1);
}

问题是,当我更新此哈希表时,所有其他房间数据都被更改覆盖。 我所有的哈希表都有不同的键。 我将不胜感激任何帮助。

我已经解决了这个问题...对于将Photon Pun与Hashtables和Room数据一起使用的任何人可能都感兴趣

在初始化方法期间初始化所有哈希表数据时,我正在执行以下操作...

房间房间= PhotonNetwork.room;

        object[] data = new object[]{with data inside};   


        Hashtable GameData1 = new Hashtable();
        GameData1.Add("data1", data);

        Hashtable GameData2= new Hashtable();
        GameData2.Add("data2", data);

        room.SetCustomProperties(GameData1);
        room.SetCustomProperties(GameData2);

然后,当我更新任何房间数据时,即使我有不同的键,它也会覆盖我的所有数据...

但是当我这样初始化它时...

房间房间= PhotonNetwork.room;

        object[] first_data = new object[]{with data inside};   
        object[] second_data = new object[]{with data inside}; 

        Hashtable GameData1 = new Hashtable();
        GameData1.Add("data1", first_data);

        Hashtable GameData2= new Hashtable();
        GameData2.Add("data2", second_data);

        room.SetCustomProperties(GameData1);
        room.SetCustomProperties(GameData2);

它会正常更新,并且不会覆盖任何其他哈希表...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM