/// <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; } }
/// <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; } }