2016-05-21 4 views
1

В соответствии с тем, что я искал онлайн, большинство примеров принимают один параметр, который является единственным Hashtable. Тем не менее, я продолжал получать ошибку, говоря, что нет метода перегрузки, который принимает только один аргумент. Это требует трех. Это пример, который я придумал, но по-прежнему получаю сообщение об ошибке, в котором указаны недопустимые аргументы.Unity Photon room.SetCustomProperties не работает

Как использовать room.SetCustomProperties?

public void PlacingStone() 
{ 
    Hashtable setPlacingStone = new Hashtable {{ RoomProperties.PlacingStone, true }}; 
    Hashtable currentValues = new Hashtable {{ RoomProperties.PlacingStone, 
    (bool) PhotonNetwork.room.customProperties [ RoomProperties.PlacingStone ] }}; 
    PhotonNetwork.room.SetCustomProperties (setPlacingStone, currentValues, true); 

    StartCoroutine ("WaitOnStone"); 
} 

ответ

1

Ваша проблема в том, что вы пытаетесь использовать несколько хеш-таблиц. Вы можете добавить различные вещи хеш-таблицы, выполнив:

PhotonNetwork.room.SetCustomProperties(new ExitGames.Client.Photon.Hashtable() { 
    { RoomProperties.PlacingStone, true }, { RoomProperties.PlacingStone, 
    (bool) PhotonNetwork.room.customProperties [ RoomProperties.PlacingStone ] } }); 

или

Hashtable t = new Hashtable(); 
t.Add(RoomProperties.PlacingStone, true); 
t.Add(RoomProperties.PlacingStone, (bool) PhotonNetwork.room.customProperties [ RoomProperties.PlacingStone ]); 
PhotonNetwork.room.SetCustomProperties(t); 
+0

Извините, если это некро, но как бы обновить значение (например, bool называется «isStreaming»). – Parrotmaster

0

Спасибо! Проблема заключалась в фотонных хэш-таблицах. Мне нужно использовать их, как вы сказали, и я также добавил использование Hashtable = ExitGames.Client.Photon.Hashtable; в верхней части страницы, чтобы сделать ее проще.

using Hashtable = ExitGames.Client.Photon.Hashtable; 

public void SetProperties() { 
    Hashtable setPlacingStone = new Hashtable {{ RoomProperties.PlacingStone, true } 

PhotonNetwork.room.SetCustomProperties (setPlacingStone); 

    StartCoroutine ("WaitOnStone"); 
} 
Смежные вопросы