Комната Unity Photon.SetCustomProperties не работает

Судя по тому, что я нашел в Интернете, большинство примеров принимают один параметр, который представляет собой один Hashtable. Однако я продолжал получать сообщение об ошибке, говорящее о том, что нет метода перегрузки, который принимает только один аргумент. Требуется три. Это пример, который я придумал, но я все еще получаю сообщение об ошибке, говорящее о недопустимых аргументах.

Как использовать 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" );
}

person Shawn Ray    schedule 21.05.2016    source источник


Ответы (2)


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

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

or

Hashtable t = new Hashtable();
t.Add(RoomProperties.PlacingStone, true);
t.Add(RoomProperties.PlacingStone, (bool) PhotonNetwork.room.customProperties [ RoomProperties.PlacingStone ] );
PhotonNetwork.room.SetCustomProperties(t);
person xplatinumx15    schedule 21.05.2016
comment
извините, если это некро, но как можно обновить значение (например, логическое значение isStreaming). - person Parrotmaster; 12.06.2017

Спасибо! Проблема заключалась в Photon Hashtables. Мне нужно использовать их, как вы сказали, и я также добавил использование 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" );
}
person Shawn Ray    schedule 25.05.2016