Photon Unity Networking 2:
У меня сразу два смежных вопроса, но один код:
У меня есть GameObject с названием GameSetup, который существует в единственном экземпляре на сцене, реализован через Singletone. На нем нет никаких компонентов, кроме самого скрипта.
Скрин:
Также у меня есть два игрока(подключаются с разных устройств), на каждом из них стоит PhotonView. Я вызываю у этих игроков RPC метод , в котором на консоль вывожу InstanceID объекта. Результат получился такой: оба игроки вывели на консоль один и тот же ID объекта GameSetup, хотя по идее они должны были вывести на консоль разные ID, так как у каждого по идее свой GameSetup объект.
Скрин того как выводятся ID на консоль:
Если я вызываю RPC метод без проверки PhotonView.IsMine, то RPC вызывается у всех игроков, а если я вызываю RPC метод с проверкой PhotonView.IsMine == true, то RPC метод вызывается только у того, кто вызывает этот метод, хотя Target стоит ALL. Ведь идея Remote Call Procedure в том, что можно удаленно у игрока вызвать соответствующий метод? Или я чего-то не понимаю?
void FixedUpdate ()
{
if (Input.GetKeyDown(KeyCode.P))
{
PV.RPC("RPC_Test", RpcTarget.All);
}
if (PV.IsMine && Input.GetKeyDown(KeyCode.L))
{
PV.RPC("RPC_Test", RpcTarget.All);
}
}
[PunRPC]
void RPC_Test()
{
Debug.LogWarning("RPC_Test, Instance ID = " + GameSetup.Instance.GetInstanceID());
transform.position = transform.position + Vector3.forward;
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости