Very Strange RPC Error

Options
Note: Sorry I put this in announcements. Can you guys move this to the PUN section?

When I use my RPC, I'm getting this error: 'ArgumentException: failed to convert parameters' that leads to line 2149 of NetworkingPeer when double clicked.

Here's my code:
void Start()
{
byte[] SendInfo = new byte[]{0,0,0};
short PosX = 5;
short PosX = 6;
photonView.RPC ("SetupCommand", PhotonTargets.All, SendInfo, PosX, PosY);//Tests with debug.log show that this is the line in the code responsible for the error
}

[RPC] public void SetupCommand (byte[] SendInfo, PosY, PosY)
{
//This is never reached
}

Here's the full errorlog:
ArgumentException: failed to convert parameters
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:192)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
NetworkingPeer.ExecuteRPC (ExitGames.Client.Photon.Hashtable rpcData, .PhotonPlayer sender) (at Assets/3rdScripts/Photon Unity Networking/Plugins/PhotonNetwork/NetworkingPeer.cs:2149)
NetworkingPeer.RPC (.PhotonView view, System.String methodName, PhotonTargets target, System.Object[] parameters) (at Assets/3rdScripts/Photon Unity Networking/Plugins/PhotonNetwork/NetworkingPeer.cs:2945)
PhotonNetwork.RPC (.PhotonView view, System.String methodName, PhotonTargets target, System.Object[] parameters) (at Assets/3rdScripts/Photon Unity Networking/Plugins/PhotonNetwork/PhotonNetwork.cs:2494)
PhotonView.RPC (System.String methodName, PhotonTargets target, System.Object[] parameters) (at Assets/3rdScripts/Photon Unity Networking/Plugins/PhotonNetwork/PhotonView.cs:557)
GameManager.SendCommand (Int32 ID, Int16 PosX, Int16 PosY) (at Assets/GameManager.cs:101)
GameManager.Update () (at Assets/GameManager.cs:164)

Comments

  • Tobias
    Options
    Maybe our RPC method does not get correctly what you want to send. You mix an array and single parameters and I'm not sure if/how we map that on the receiving end.

    Please try to send like this:
    photonView.RPC ("SetupCommand", PhotonTargets.All, new object[] {SendInfo, PosX, PosY});
  • SnpM
    Options
    I found out that sending 3 bytes individually has exactly equal the bandwidth but I'll test this out when I need to send longer arrays of bytes.
  • Tobias
    Options
    It's not about the bandwidth in this case. I just can't provide a good solution how to mix arrays and other values at the moment. Will have to check that out in more detail.