// -------------------------------------------

        /*
         * SendTransform
         */
        public void SendTransform(int _netID, int _uID, int _indexPrefab, Vector3 _position, Vector3 _forward, Vector3 _scale)
        {
            if (m_uid != -1)
            {
                m_events.Add(new ItemMultiObjectEntry(OpCodes.Transform, MatchDataJson.Transform(_netID, _uID, _indexPrefab, _position, _forward, _scale)));
            }
        }
        // -------------------------------------------

        /*
         * OnNetworkEvent
         */
        private void OnNetworkEvent(string _nameEvent, bool _isLocalEvent, int _networkOriginID, int _networkTargetID, object[] _list)
        {
            if (_nameEvent == NetworkEventController.EVENT_SYSTEM_DESTROY_NETWORK_COMMUNICATIONS)
            {
                Destroy();
            }
            if (_nameEvent == NetworkEventController.EVENT_SYSTEM_INITIALITZATION_REMOTE_COMPLETED)
            {
                int networkIDPlayer = int.Parse((string)_list[0]);
                if (networkIDPlayer != m_uid)
                {
                    if (ClientNewConnection(networkIDPlayer))
                    {
                        NetworkEventController.Instance.DelayNetworkEvent(NetworkEventController.EVENT_SYSTEM_INITIALITZATION_REMOTE_COMPLETED, 0.2f, m_uid.ToString());
                    }
                }
            }
            if (_nameEvent == NetworkEventController.EVENT_SYSTEM_PLAYER_HAS_BEEN_DESTROYED)
            {
                int networkIDPlayer = int.Parse((string)_list[0]);
                ClientDisconnected(networkIDPlayer);
            }
            if (_nameEvent == NetworkEventController.EVENT_STREAMSERVER_REPORT_CLOSED_STREAM)
            {
                int networkIDPlayer = int.Parse((string)_list[0]);
                ClientDisconnected(networkIDPlayer);
            }
            if (!_isLocalEvent)
            {
                m_events.Add(new ItemMultiObjectEntry(OpCodes.Message, MatchDataJson.Message(_nameEvent, _networkOriginID, _networkTargetID, _list)));
            }
        }
        // -------------------------------------------

        /*
         * SendUIDsPlayers
         */
        private async Task SendUIDsPlayers()
        {
            List <string> uids = new List <string>();

            foreach (NakamaPlayer player in m_players)
            {
                uids.Add(player.ID);
            }
            BasicSystemEventController.Instance.DelayBasicSystemEvent(EVENT_NAKAMACONTROLLER_TIMEOUT_SEND_UIDS, 2);
            await SendMatchStateAsync(OpCodes.AssignUID, MatchDataJson.AssignUIDS(uids.ToArray()), true);
        }