示例#1
0
        public void RequestPlayersList()
        {
            NetworkMessagePlayersList msg = new NetworkMessagePlayersList();

            msg.isServerResponse = false;
            Client.Send(4000, msg);
        }
示例#2
0
        private void OnPlayerListRequest(NetworkMessage netMsg)
        {
            NetworkMessagePlayersList msg = netMsg.ReadMessage <NetworkMessagePlayersList>();

            if (isServer && msg.isServerResponse == false)
            {
                msg.isServerResponse = true;

                List <uint> plist = new List <uint>();

                for (int i = 0; i < TheNetworkManager.ConnectedPlayers.Count; i++)
                {
                    GameObject go = TheNetworkManager.ConnectedPlayers[i];
                    if (go != null)
                    {
                        uint player_net_id = go
                                             .GetComponent <NetworkIdentity>()
                                             .netId.Value;

                        plist.Add(player_net_id);
                    }
                }

                msg.NetIDs = plist.ToArray();

                NetworkServer.SendToClient(netMsg.conn.connectionId, 4000, msg);
                //NetworkServer.SendToAll(4000, msg);
                //NetworkInstanceId netID = new NetworkInstanceId(msg.NetID);
                //GameObject go = NetworkServer.FindLocalObject(netID);
                //if (go != null)
                //{
                //}
            }
            else if (Client.isConnected)
            {
                List <GameObject> players = new List <GameObject>();
                for (int i = 0; i < msg.NetIDs.Length; i++)
                {
                    NetworkInstanceId netID = new NetworkInstanceId(msg.NetIDs[i]);
                    GameObject        go    = ClientScene.FindLocalObject(netID);
                    if (go != null)
                    {
                        players.Add(go);
                    }
                }

                EventMessenger.Instance.Raise(new EventReceivedPlayersList(players));
            }
        }