Пример #1
0
        protected virtual void NetworkManager_m_onDataReceived(int _sender, byte[] _data, int _receivedBytes)
        {
            Debug.Log("Received message from " + (IsServer ? "Server" : "Client"));
            AMessageBase message = AMessageBase.ConstructMessage(_sender, _data,
                                                                 _receivedBytes);

            message?.Use();
        }
Пример #2
0
        public void SendMessageToClients(AMessageBase _message, QosType _channel = QosType.Reliable)
        {
            int bytesLength;

            byte[] buffer = _message.Serialize(out bytesLength);

            byte error;

            byte channelID = 0;

            switch (_channel)
            {
            case QosType.Unreliable:
                channelID = m_unreliableChannel;
                break;

            case QosType.Reliable:
                channelID = m_reliableChannel;
                break;

            case QosType.StateUpdate:
                channelID = m_unreliableStateUpdateChannel;
                break;

            default:
                Debug.LogError("Could not find channel! " + _channel);
                break;
            }

            foreach (int id in m_allClients)
            {
                if (id == m_clientID || id == m_clientID + 1)
                {
                    continue;
                }

                NetworkTransport.Send(m_hostID, id, channelID,
                                      buffer, bytesLength, out error);

                NetworkError networkError = (NetworkError)error;
                if (networkError != NetworkError.Ok)
                {
                    Debug.LogError("Fehler beim Senden!" + networkError);
                }
            }
        }