У меня есть два вызова RPC, отправленные из GameManager
PUNPlayerManager.LocalPlayerInstance.GetComponent (). SetDuelGameRPC (duelGameString); PUNPlayerManager.LocalPlayerInstance.GetComponent (). SetInGameRPC (true);
On the player instance:
public void SetDuelGameRPC(string duelGame) //To be called by masterClient
{
photonView.RPC("SetInGame", RpcTarget.All, duelGame);
}
[PunRPC]
private void SetDuelGame(string duelGame)
{
Debug.Log("received gameString " + duelGame);
this.duelGameString = duelGame;
}
public void SetInGameRPC(bool inGame) //To be called by masterClient
{
photonView.RPC("SetInGame", RpcTarget.All, inGame);
}
[PunRPC]
private void SetInGame(bool inGame)
{
this.inGame = inGame;
}
Хорошее: все отлично работает на автономной (ПК) сборке.
Плохое: на эмуляторе Android и редакторе Unity;
- Первый вызов SetDuelGameRPC вроде бы игнорируется
- Я получаю следующую ошибку для обоих игроков
PhotonView с идентификатором 1001 не имеет метода SetInGame, который принимает 1 аргумент (ы): String UnityEngine.Debug: LogError (Object) Photon.Pun.PhotonNetwork: ExecuteRpc (Hashtable, Player) (в Assets / Photon / PhotonUnityNetworking / Code / PhotonNetworkPart .cs: 507) Photon.Pun.PhotonNetwork: RPC (PhotonView, String, RpcTarget, Player, Boolean, Object []) (в Assets / Photon / PhotonUnityNetworking / Code / PhotonNetworkPart.cs: 1233) Photon.Pun.PhotonNetwork: RPC (PhotonView, String, RpcTarget, Boolean, Object []) (в Assets / Photon / PhotonUnityNetworking / Code / PhotonNetwork.cs: 2668) Photon.Pun.PhotonView: RPC (String, RpcTarget, Object []) (в Assets / Photon /PhotonUnityNetworking/Code/PhotonView.cs:415) PUNPlayerManager: SetDuelGameRPC (String) (в Assets / Scripts / PUN / PUNPlayerManager.cs: 101) GameManager: PrepareDuelGame () (в Assets / Scriptsager / PUN.cs: 131) GameManager: Update () (в Assets / Scripts / PUN / GameManager.cs: 162)