-
Notifications
You must be signed in to change notification settings - Fork 6
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);