При изучении Mirror я столкнулся с проблемой, что хост передаёт данные клиентам, а клиенты не передают данные серверу.
Реализовал я передачу через "SyncVar":
spoilerpublic class MirrorTest : NetworkBehaviour
{
[SyncVar(hook = nameof(SetColor))]
public Color playerColor = Color.black;
public SpriteRenderer playerSprite;
public Color[] colors;
private void Update()
{
if (isLocalPlayer)
{
if (Input.GetKeyDown(KeyCode.Space))
{
int randomColor = Random.Range(0, colors.Length);
playerColor = colors[randomColor];
}
}
}
void SetColor(Color oldColor, Color newColor)
{
playerSprite.color = newColor;
}
}
Итог:
Если хост нажимает "Space" он меняет цвет(в инспекторе), и это видит как и хост, так и клиент.
Если клиент нажимает "Space" он меняет цвет(в инспекторе), но как и клиент, так и хост не видят новый цвет.
Если надо что-то уточнить, спрашивайте.
Спасибо.