示例#1
0
 private void ClientConnected(ulong id)
 {
     if (IsServer)
     {
         NetworkClientID clientID = ServerConnection.PlayerConnected(id);
         clients.Add(clientID.ConnectionID, clientID);
     }
 }
示例#2
0
 public void SendToCell(GridCell cell, NetworkMessage message, NetworkClientID excludeClient = null)
 {
     foreach (NetworkEntity ne in cell.Listeners)
     {
         if (excludeClient == null || excludeClient != ne.clientID)
         {
             Send(ne.clientID.ConnectionID, message);
         }
     }
 }
示例#3
0
    public void SendEntity(NetworkClientID clientID, NetworkEntity entity)
    {
        NetworkMessage msg = new NetworkMessage(NetworkMessageType.Entity_UpdateTransform);

        msg.Write(1);
        msg.Write(entity.networkable.ID);
        msg.Write(entity.gridCell.Index);
        msg.Write(entity.Path);
        msg.Write(entity.transform.position);
        msg.Write(entity.transform.rotation);
        Send(clientID.ConnectionID, msg);
    }
示例#4
0
    public void SendEntities(NetworkClientID clientID, HashSet <NetworkEntity> entities)
    {
        if (entities == null || entities.Count == 0)
        {
            return;
        }
        if (clientID == null)
        {
            return;
        }

        foreach (NetworkEntity ent in entities)
        {
            SendEntity(clientID, ent);
        }
    }
示例#5
0
    public static NetworkClientID PlayerConnected(ulong connectionID)
    {
        GameObject    obj = GameObject.Instantiate(Resources.Load("Cube")) as GameObject;
        NetworkEntity ent = obj.GetComponent <NetworkEntity>();

        ent.locallyControlled = false;
        uint            netID       = EntityManager.Register(ent);
        NetworkClientID netClientID = new NetworkClientID(connectionID, netID);

        ent.clientID           = netClientID;
        obj.transform.position = Vector3.zero;
        NetworkMessage msg = new NetworkMessage(NetworkMessageType.Entity_LocalPlayerCreated);

        msg.Write(netClientID.NetID);
        msg.Write(Grid.Instance.GetCell(obj.transform.position).Index);
        msg.Write(ent.Path);
        NetworkManager.Instance.Send(netClientID.ConnectionID, msg);

        return(netClientID);
    }