我正在使用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);
}
问题是,当我更新此哈希表时,我的所有其他会议室数据都已覆盖了更改。我的所有哈希表都有不同的键。我非常感谢任何帮助。
答案 0 :(得分:0)
我已经解决了这个问题......任何使用带有Hashtables和房间数据的Photon Pun的人都可能感兴趣
当我在初始化方法中初始化所有哈希表数据时,我正在做这样的事情......
房间= 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);
它正常更新,不会覆盖任何其他Hashtables ......