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); } }
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>); }
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); }
protected virtual int System(NetworkMessages msg) { return(((int)msg << 1) | 1); }