2017-01-01 11 views
0

Я использую Photon PUN с Unity. У меня есть некоторые статические классы, которые отслеживают данные игрока в моей игре. Вот пример метода обновления данных ...Unity C# ExitGames Photon PUN Hashtable неправильно обновляется

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); 
} 

Проблема заключается в том, когда я обновлю этот Hashtable все другие мои данные комната является перезаписаны с изменениями. Все мои хэш-таблицы имеют разные ключи. Я был бы очень признателен за любую помощь.

ответ

0

Я решил этот вопрос ... И это может представлять интерес для тех, кто с помощью Photon каламбура с HashTables и номер данными

Когда я инициализируюсь все данные хэш-таблицы во время инициализации методы я делаю что-то вроде это ...

Room 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); 

Тогда, когда я обновить все данные номеров было бы переписать все мои данные, даже если у меня были различные ключи ...

Но когда я инициализировать его, как это ...

номер room = 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 ...

 Смежные вопросы

  • Нет связанных вопросов^_^