UnityEngine.Networking.NetworkMigrationManager.OnPeerClientAuthority C# (CSharp) Method

OnPeerClientAuthority() private method

private OnPeerClientAuthority ( NetworkMessage netMsg ) : void
netMsg NetworkMessage
return void
        private void OnPeerClientAuthority(NetworkMessage netMsg)
        {
            PeerAuthorityMessage message = netMsg.ReadMessage<PeerAuthorityMessage>();
            if (LogFilter.logDebug)
            {
                Debug.Log("OnPeerClientAuthority for netId:" + message.netId);
            }
            if (this.m_Peers != null)
            {
                for (int i = 0; i < this.m_Peers.Length; i++)
                {
                    PeerInfoMessage message2 = this.m_Peers[i];
                    if (message2.connectionId == message.connectionId)
                    {
                        if (message2.playerIds == null)
                        {
                            message2.playerIds = new PeerInfoPlayer[0];
                        }
                        if (message.authorityState)
                        {
                            for (int j = 0; j < message2.playerIds.Length; j++)
                            {
                                if (message2.playerIds[j].netId == message.netId)
                                {
                                    return;
                                }
                            }
                            PeerInfoPlayer player = new PeerInfoPlayer {
                                netId = message.netId,
                                playerControllerId = -1
                            };
                            message2.playerIds = new List<PeerInfoPlayer>(message2.playerIds) { player }.ToArray();
                        }
                        else
                        {
                            for (int k = 0; k < message2.playerIds.Length; k++)
                            {
                                if (message2.playerIds[k].netId == message.netId)
                                {
                                    List<PeerInfoPlayer> list2 = new List<PeerInfoPlayer>(message2.playerIds);
                                    list2.RemoveAt(k);
                                    message2.playerIds = list2.ToArray();
                                    break;
                                }
                            }
                        }
                    }
                }
                GameObject go = ClientScene.FindLocalObject(message.netId);
                this.OnAuthorityUpdated(go, message.connectionId, message.authorityState);
            }
        }