I have the same issue, I didn't get an updated state on the unity side whether colyseus monitor shows the updated data. So, new patches are not received by the unity client. Here is my code.
private void OnPlayerAdd(string key, Player newPlayer){
newPlayer.TriggerAll();
newPlayer.PlayerState.TriggerAll();
if (!playersToAdd.ContainsKey(newPlayer.id))
{
playersToAdd.Add(newPlayer.id, newPlayer);
if (newPlayer.Seatnumber != -1 && newPlayer.id == SessionId)
{
BoardManager.Instance.Enable_Disable(false);
BoardManager.Instance.Set_up_profile(false, newPlayer.Seatnumber, playersToAdd[newPlayer.id]);
}
}
if (newPlayer.id == SessionId && newPlayer.Seatnumber != -1)
{
thisSeat = newPlayer.Seatnumber;
BoardManager.Instance.Rearrange_Seat();
}
if (GameplayRoom.State.players.Count >= 2)
{
BoardManager.Instance.WaitingTextDisable(false);
}
newPlayer.PlayerState.OnChange += changes =>
{
Debug.Log("-=-=-=-=-=-=-=-=-=-=-=-=-Player Log=-=--=-=-=-=-=-> " + key + " " + newPlayer.id);
foreach (var t in changes)
{
Debug.Log(t.Field + " " + t.Value);
}
};
}
this is the code I have set on the client side
and This function is subscribe in "GameplayRoom.State.players.OnAdd += OnPlayerAdd;"