2

根据我在网上查到的,大多数示例都采用一个参数,即单个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" );
}
4

2 回答 2

3

您的问题是您正在尝试使用多个哈希表。您可以通过执行以下操作向哈希表添加不同的内容:

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);
于 2016-05-21T23:47:08.050 回答
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" );
}
于 2016-05-25T00:31:21.030 回答