Photon PUN2 Unity3D - отправка RPC работает на автономном (ПК), но не на Android

У меня есть два вызова 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;

  1. Первый вызов SetDuelGameRPC вроде бы игнорируется
  2. Я получаю следующую ошибку для обоих игроков

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)


person Halil Ozdemir    schedule 07.10.2018    source источник
comment
Задавайте вопросы об играх в сообществе разработчиков игр!   -  person Gourav    schedule 01.02.2019
comment
Задавайте вопросы об играх в сообществе разработчиков игр!   -  person Gourav    schedule 01.02.2019


Ответы (1)


public void SetInGameRPC(bool inGame) //To be called by masterClient
{
     var _photonView = this.GetComponent<PhotonView>();
     _photonView.RPC("SetInGame", RpcTarget.All, inGame);
}

Попробуйте этот код

Я думаю, что переменная photonView в PUNPlayerManager указана неправильно.

person JH.Noh    schedule 16.10.2018