Назначение цвета клиенту (Сетевой) - PullRequest
0 голосов
/ 08 мая 2018

Я так долго боролся с этим, что забыл, как писать код.

Все, что я пытаюсь сделать, - это назначить вновь порожденному клиенту случайный цвет, который реплицируется для всех клиентов на сервере (и остается согласованным).

Вот мой код:

 public void FindRandomColor()
{
    children = GetComponentsInChildren<Renderer>();
    col = new Color(Random.Range(0.1f, 1.0f), Random.Range(0.1f, 1.0f), Random.Range(0.1f, 1.0f));

    foreach (Renderer child in children)
    {
        child.GetComponent<Renderer>().material.color = col;
    }
}

void AssignColorToClient()
{
    if(isLocalPlayer)
    playerSetup.FindRandomColor();
}

void Start () {
    rB = GetComponent<Rigidbody>();
    playerSetup = GetComponent<PlayerSetup>();

    AssignColorToClient();

}

Каждому клиенту назначен цвет, но каждый клиент не может видеть назначенные ему цвета. Я возился с [ClientRPC] и [Command], но ни один из них не сработал для меня.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 08 мая 2018

Для синхронизации цвета игроков по сети вам нужно использовать синхронизатор

[SyncVar(hook = "OnChangeColour")]
public Color col;

Затем создайте крючок, который прослушивает изменения цвета игроков

void OnChangeColour (Color col)
{
    child.GetComponent<Renderer>().material.color = col;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...