У меня есть два сценария, на которых я хочу сосредоточиться: «GameMaster.cs» и «Player.cs». Метод test () работает (так как «игрок» может обновлять свою собственную переменную syncVar в зависимости от того, что отправляет «gamemaster»), но метод syncID () не работает.
GameMaster.cs:
private int syncVariable = 0;
private PhotonView PV;
private void Start()
{
PV = GetComponent<PhotonView>(); //create inital PhotonView object to reference later
}
void Update()
{
this.photonView.RPC("syncID", RpcTarget.AllBuffered, this.gameObject.GetComponent<PhotonView>().ViewID);
PV.RPC("RPCFunction", RpcTarget.AllBuffered, syncVariable)
syncVariable += 1;
}
[PunRPC]
void test(float syncVar)
{
Debug.LogError("SyncVar changed! " + syncVariable);
}
[PunRPC]
void syncID(int ID)
{
print("Changed colours");
}
Player.cs:
[PunRPC]
void test(float syncVar) //this one works
{
SyncVariable = syncVar;
Debug.LogError("SyncVar changed! " + SyncVariable);
}
[PunRPC]
public void syncID(int ID)//this one does not
{
print("added colour " + ID);
//do other stuff like setting a child, etc.
}