Photon PUN2 Unity3D - отправка RPC работает в автономном режиме (ПК), но не на Android - PullRequest
0 голосов
/ 08 октября 2018

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

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

В PhotonView с идентификатором 1001 нет метода "SetInGame"это принимает 1 аргумент (ы): String UnityEngine.Debug: LogError (Object) Photon.Pun.PhotonNetwork: ExecuteRpc (Hashtable, Player) (в Активы / Photon / PhotonUnityNetworking / Code / PhotonNetworkPart.cs: 507) Photon.Pun.PhotonNetwork: RPC (PhotonView, String, RpcTarget, Player, Boolean, Object []) (в объектах / Photon / PhotonUnityNetworking / Code / PhotonNetworkPart.cs: 1233) Photon.Pun.PhotonNetwork: RPC (PhotonView, String, RpcTarget, логический, объект[]) (в разделе «Ресурсы» / «Фотон» / «Сеть фотонов» / Code / PhotonNetwork.cs: 2668) Photon.Pun.PhotonView: RPC (String, RpcTarget, Object []) (в разделе «Активы / Фотон / ФотонUnityNetworking / Код /»)PhotonView.cs: 415) PUNPlayerManager: SetDuelGameRPC (String) (в активах / сценариях / PUN / PUNPlayerManager.cs: 101) GameManager: PrepareDuelGame () (в активах / сценариях / PUN / GameManager.cs: 131) GameManager: обновление ()(в разделе Активы / Скрипты / PUN / GameManager.cs: 162)

1 Ответ

0 голосов
/ 16 октября 2018
public void SetInGameRPC(bool inGame) //To be called by masterClient
{
     var _photonView = this.GetComponent<PhotonView>();
     _photonView.RPC("SetInGame", RpcTarget.All, inGame);
}

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...