public void UnregisterToMessageOnClient(NetworkMessages msgCode, Action <MessageBase> callback)
        {
            var code = (short)msgCode;

            if (_registeredCallbacks.ContainsKey(code))
            {
                _registeredCallbacks[code].Remove(callback);
            }
            if (!_registeredCallbacks.ContainsKey(code) || _registeredCallbacks[code].Count == 0)
            {
                _clientMessaging.UnregisterMessaging((short)msgCode);
            }
        }
Exemplo n.º 2
0
 public static void SendNetworkMessage(int objectID, object obj, DeliveryMethod deliveryMethod = DeliveryMethod.ReliableSequenced)
 {
     // send message host -> client
     if (GameController.Instance.IsHost)
     {
         NetworkHost host = GameController.Instance.host;
         host.netManager.SendToAll(host.netPacketProcessor.Write(NetworkMessages.ToPacket(objectID, obj)), deliveryMethod);
     }
     // send message client -> host
     else
     {
         NetworkClient client = GameController.Instance.client;
         client.netManager.SendToAll(client.netPacketProcessor.Write(NetworkMessages.ToPacket(objectID, obj)), deliveryMethod);
     }
 }
        public void RegisterToMessageOnClient <T>(NetworkMessages msgCode, Action <MessageBase> callback) where T : MessageBase, new()
        {
            var code = (short)msgCode;

            if (_registeredCallbacks.ContainsKey(code))
            {
                _registeredCallbacks[code].Add(callback);
            }
            else
            {
                _registeredCallbacks.Add(code, new List <Action <MessageBase> >()
                {
                    callback
                });
            }
            _clientMessaging.RegisterMessaging(code, CallBack <T>);
        }
Exemplo n.º 4
0
    public static void SendNetworkMessageToPeer(int peerID, int objectID, object obj, DeliveryMethod deliveryMethod = DeliveryMethod.ReliableSequenced)
    {
        // send message host -> specific client
        if (!GameController.Instance.IsHost)
        {
            throw new InvalidOperationException("Can only use this method as host.");
        }
        NetworkHost host = GameController.Instance.host;

        foreach (NetPeer peer in host.netManager)
        {
            if (peer.Id == peerID)
            {
                peer.Send(host.netPacketProcessor.Write(NetworkMessages.ToPacket(objectID, obj)), deliveryMethod);
            }
        }
    }
 public void SendMessageToServer(NetworkMessages msgCode, MessageBase msg)
 {
     _clientMessaging.Send((short)msgCode, msg);
 }
 public void SendMessageToAllClients(NetworkMessages msgCode, MessageBase msg)
 {
     _serverMessaging.SendToAll((short)msgCode, msg);
 }
Exemplo n.º 7
0
 protected virtual int System(NetworkMessages msg)
 {
     return(((int)msg << 1) | 1);
 }