private void Update()
    {
        lock (serverMessages)
        {
            foreach (var msg in serverMessages)
            {
                // if is data treat it as world
                if (msg.IsBinary)
                {
                    if (!worldLoaded)
                    {
                        world       = ser.DeserializeWorld(msg.RawData);
                        worldLoaded = true;
                        BuildWorld();
                    }
                    else
                    {
                        players = ser.DeserializePlayers(msg.RawData);
                        PositionPlayers();
                    }
                }
                // if msg is string
                if (msg.IsText)
                {
                    messages.Add(msg.Data);
                }

                foreach (var message in messages)
                {
                    textMessage.text += message + Environment.NewLine;
                }
            }
            messages.Clear();
            serverMessages.Clear();
        }

        if (messagingField.isFocused == true)
        {
            writingMessage = true;
        }
        else
        {
            writingMessage = false;
        }
    }