Skip to content

BaseMessage

Denis Totmin edited this page Dec 13, 2019 · 4 revisions

GalaxyCoreCommon.BaseMessage

Данный класс реализует базовую обвязку для упрощения серриазации / десерриализации. так же он предоставляет полную поддержку ProtoBuf

Наследуя этот класс для создания собственных сообщений, вы получаете следующие встроенные конструкции.

Serialize(); возвращает byte[] data (данные вашего класса в серриализованном виде)

Deserialize<T>(byte[] data); приводит массив байт в указанный тип

пример реализации (создадим сообщение передачи сетевого варианта vector3):

[ProtoContract] public class MessageVector3:BaseMessage { [ProtoMember(1)] public float x { get; set; } [ProtoMember(2)] public float y { get; set; } [ProtoMember(3)] public float z { get; set; } }

создадим экземпляр данного класса и отправим его на сервер

MessageVector3 message= new MessageVector3(); message.x= 1; message.y= 6; message.z= 2; GalaxyApi.send.SendMessageToServer(1, message, GalaxyCoreCommon.GalaxyDeliveryType.reliable);

преобразовываем данные обратно имея массив байт

MessageVector3 message = MessageVector3.Deserialize<MessageVector3>(data);

Clone this wiki locally