Простая отправка данных между клиентом / сервером - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь отправить данные в простой многопользовательской игре, используя Var1 и Var2 в этом примере.Var1 должен быть отправлен и сохранен как Var2 в экземпляре другого пользователя.

Код, который у меня вроде работает, за исключением того, что я думаю, что сервер отправляет данные самому себе и переопределяет данные, которые он получает, потому что, если я загружаюклиент и инициализирует / отправляет данные, сервер видит это.Затем, если я иду на сервер и инициализирую / отправляю данные, клиент видит это.Но если я вернусь к клиенту и отправлю данные, сервер его больше не увидит.Как будто сервер действует как клиент и сервер.Я что-то не так делаю?

public class mouseController : NetworkBehaviour
{
    GameLoop g;
void Start()
{
    GameObject thePlayer = GameObject.Find("Main Camera");
    g = thePlayer.GetComponent<GameLoop>(); 
}
void Update()
{

    if (!isLocalPlayer)
    {
        return;
    }

    if (isServer)
    {
        if (g.var1 > 0)
        {
            Rpcsenddata(g.var1);
        }
    }
    else
    { 
        if (g.var1 > 0)
        {
            Cmdsenddata(g.var1);
        }
    }
 }
    [Command]
    void Cmdsenddata(int i)
    {
        g.var2 = i;
    }
    [ClientRpc]
    public void Rpcsenddata(int i)
    {
        g.var2 = i;
    }
}

https://gyazo.com/b77e2ce35ec5f4d47147894c9430da03

(отправляемая информация - это карта, выбранная вашим противником. Сервер - окно справа)

1 Ответ

0 голосов
/ 30 сентября 2018

Я думаю, я исправил это, добавив проверку! IsLocalPlayer

[ClientRpc]
public void Rpcsenddata(int i)
{
    if (!isLocalPlayer) {  
        g.ehandSelected = i;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...