RPC и командные вызовы ИЛИ Сетевые сообщения для синхронизации переменных между сервером и клиентом? - PullRequest
0 голосов
/ 07 ноября 2018

В настоящее время я делаю многопользовательскую игру для Unity, которая основана на синхронизации переменных на сервере и в единственном клиенте. Я уже могу использовать [SyncVar] для синхронизации переменных с сервера с клиентом, но не наоборот. Дело в том, что у меня нет игрового сборника, который появляется в игре. Могу ли я совершать вызовы Command и RPC? Я попробовал этот код ниже, который не работал, когда я играл в игру. Будут ли сетевые сообщения работать лучше в моей ситуации?

bool officeBought = false;

void Update () {
    if (!isServer)
    {
        CmdSendBuildingBought(officeBought);
    }
}

[Command]
public void CmdSendBuildingBought(bool buildingBought)
{

    buildingBought = true;
}

1 Ответ

0 голосов
/ 07 ноября 2018

Как говорит derHugo, вам нужно создать хотя бы один PlayerObject в игре, НО:

Вам не нужно было использовать его, если вы этого не хотите, но вам нужно, по крайней мере, создать его экземпляр на сцене, чтобы назначить «Authority» объекту, который вы хотите сделать из вызовов CMD / RPC.

Больше информации о Unet Authority здесь: https://docs.unity3d.com/Manual/UNetAuthority.html

Также позвольте мне предложить другой ответ, который я сделал на этот конкретный вопрос, так как я думаю, что это будет ваш следующий шаг: Проблема смещения полномочий неигрового объекта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...