/// <summary>
    /// В этот метод приходят все входящии сообщения (мы на них подписались)
    /// </summary>
    /// <param name="code"></param>
    /// <param name="data"></param>
    private void OnGalaxyIncommingMessage(byte code, byte[] data)
    {
        switch ((CommandType)code)
        {
        case CommandType.goInstantiate:
        {
            MessageInstantiate message = MessageInstantiate.Deserialize <MessageInstantiate>(data);
            OnMessInstantiate?.Invoke(message);
        }
        break;

        case CommandType.goTransform:
        {
            MessageTransform message = MessageTransform.Deserialize <MessageTransform>(data);
            OnMessTransform?.Invoke(message);
        }
        break;

        case CommandType.goDestroy:
        {
            MessageDestroyGO message = MessageDestroyGO.Deserialize <MessageDestroyGO>(data);
            OnMessDestroy?.Invoke(message);
        }
        break;

        case CommandType.worldSync:
        {
            MessageWorldSync message = MessageWorldSync.Deserialize <MessageWorldSync>(data);
            OnWorldSync?.Invoke(message);
        }
        break;

        case CommandType.goMessage:
        {
            MessageGO message = MessageGO.Deserialize <MessageGO>(data);
            OnGoMessage?.Invoke(message);
        }
        break;
        }
    }
Example #2
0
        /// <summary>
        /// Сюда попадают проброшенные сообщения
        /// </summary>
        /// <param name="code"></param>
        /// <param name="data"></param>
        /// <param name="clientConnection"></param>
        public override void TossMessage(byte code, byte[] data, ClientConnection clientConnection)
        {
            switch ((CommandType)code)
            {
            case CommandType.goInstantiate:
            {
                MessageInstantiate message = MessageInstantiate.Deserialize <MessageInstantiate>(data);
                InstantiateGO(message, clientConnection);
            }
            break;

            case CommandType.goTransform:
            {
                MessageTransform message = MessageTransform.Deserialize <MessageTransform>(data);
                TransformGO(message, clientConnection);
            }
            break;

            case CommandType.goDestroy:
            {
                MessageDestroyGO message = MessageDestroyGO.Deserialize <MessageDestroyGO>(data);
                DestroyGO(message, clientConnection);
            }
            break;

            case CommandType.worldSync:
            {
                SendWorld(clientConnection);
            }
            break;

            case CommandType.goMessage:
            {
                SendMessageToAllExcept(clientConnection, (byte)CommandType.goMessage, data, GalaxyDeliveryType.reliable);
            }
            break;
            }
        }