Страница 1 из 1

PhotonTargets конкретному клиенту

СообщениеДобавлено: 26 июн 2018, 21:57
nikotin
Здравствуйте.В доке написано что с помощью RPC можно зарегистрировать метод (делегат) и через него отправлять всем остальным нужные сообщения (https://doc.photonengine.com/en-us/pun/ ... raiseevent ), но как отправить сообщение конкретному клиенту как то умалчивается
Синтаксис:
Используется csharp
[PunRPC]
void ChatMessage(string a, string b, PhotonMessageInfo info)
{
    // the photonView.RPC() call is the same as without the info parameter.
    // the info.sender is the player who called the RPC.
    Debug.Log(string.Format("Info: {0} {1} {2}", info.sender, info.photonView, info.timestamp));
}
PhotonView photonView = PhotonView.Get(this);
photonView.RPC("ChatMessage", PhotonTargets.All, "jup", "and jup!");//всем отправляем ,а нужно или отправителю обратно чтоб узнать пинг
или кому ни будь конкретно

Подскажите пожалуйста, можно ли через photonView.RPC отправить конкретному клиенту по его ID ,если нет то какой метод это может?
И как принято в photon вычислять пинг для данного клиента?

Re: PhotonTargets конкретному клиенту

СообщениеДобавлено: 26 июн 2018, 22:37
seaman
Просто отправляйте id того кому нужно и в методе проверяйте совпадает ли локальный с отправленным.
локальный PhotonNetwork.player.Id

Re: PhotonTargets конкретному клиенту

СообщениеДобавлено: 28 июн 2018, 08:55
nikotin
seaman писал(а):Просто отправляйте id того кому нужно и в методе проверяйте совпадает ли локальный с отправленным.
локальный PhotonNetwork.player.Id

Спасибо, но тогда все равно всем будет отправлено сообщение - лишний трафик (зачем посылать всем когда нужно послать одному), и пинг конкретного клиента с облаком фотона не вычислить. Вроде как можно создавать группы клиентов, которым данное сообщение посылается
Синтаксис:
Используется csharp
 PhotonNetwork.SetSendingEnabled((byte)25,true);

Но при попытке инициэйтить объект не с группой 0, а с иным значением byte
Синтаксис:
Используется csharp
PhotonNetwork.Instantiate(this.prefab.name, new Vector3(0f, 5f, 0f), Quaternion.identity, 25/*0*/);

объект вообще не создается (не понятно, зачем вообще тогда нужен последний параметр). Не удается разобраться.

Re: PhotonTargets конкретному клиенту

СообщениеДобавлено: 30 июн 2018, 09:47
nikotin
все понял -это с помощью групп можно сделать - нужно включить PhotonNetwork.SetInterestGroups https://doc.photonengine.com/en-us/pun/ ... restgroups . Но получить от облака себе обратно сообщение с помощью PPC почему то нельзя -даже если поставить PhotonTargets.AllViaServer
Синтаксис:
Используется csharp
photonView.RPC("myGetPing", PhotonTargets.AllViaServer, PhotonNetwork.time);

все равно отправляется всем остальным (если у них photonView.group=0), а себе почему то нет, хотя в комменте про PhotonTargets.AllViaServer написано что всем отправляет включая отправителя -но он не чего не получает.

Re: PhotonTargets конкретному клиенту

СообщениеДобавлено: 30 июн 2018, 10:06
nikotin
Чет я намудрил с группами походу - PhotonTargets.AllViaServer работает.