[英]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.