Interface ICommandDataSerializer<T>
Interface that must be implemented to serialize/deserialize ICommandData. Usually commands serialization / deserialization is automatically generated, unless a NetCodeDisableCommandCodeGenAttribute is added to the command struct to opt-in for manual serializaton. If you enable manual serializaton, you must create a public struct that implement the ICommandDataSerializer for your type, as well as the necessary send and received systems in order to have your RPC sent and received.
Namespace: Unity.NetCode
Assembly: Unity.NetCode.dll
Syntax
public interface ICommandDataSerializer<T> where T : unmanaged, ICommandData
Type Parameters
Name | Description |
---|---|
T |
Methods
CalculateChangeMask(in T, in T)
Used to delta-compress this command when sending it via the CommandSendSystem<TCommandDataSerializer, TCommandData>.
Declaration
uint CalculateChangeMask(in T snapshot, in T baseline)
Parameters
Type | Name | Description |
---|---|---|
T | snapshot | The current value. |
T | baseline | The previous/baseline value. |
Returns
Type | Description |
---|---|
uint | A change-mask, 0 if unchanged. |
Remarks
The default interface implementation (maintained for non-breaking change backwards compatibility) always returns 1 (has changes), so we strongly recommend overriding it in your own implementation (assuming your implementing this interface yourself). The automatic code-generated version uses a per-field change mask automatically.
Deserialize(ref DataStreamReader, in RpcDeserializerState, ref T)
Deserialize a single command from the data stream.
Declaration
void Deserialize(ref DataStreamReader reader, in RpcDeserializerState state, ref T data)
Parameters
Type | Name | Description |
---|---|---|
DataStreamReader | reader | An instance of a Unity.Collections.DataStreamWriter |
RpcDeserializerState | state | An instance of RpcSerializerState used to carry some additional data and accessor for serializing the command field type. In particular, used to serialize entity |
T | data |
Deserialize(ref DataStreamReader, in RpcDeserializerState, ref T, in T, StreamCompressionModel)
Deserialize a single command from the data stream using delta compression
Declaration
void Deserialize(ref DataStreamReader reader, in RpcDeserializerState state, ref T data, in T baseline, StreamCompressionModel compressionModel)
Parameters
Type | Name | Description |
---|---|---|
DataStreamReader | reader | An instance of a Unity.Collections.DataStreamWriter |
RpcDeserializerState | state | An instance of RpcSerializerState used to carry some additional data and accessor for serializing the command field type. In particular, used to serialize entity |
T | data | |
T | baseline | |
StreamCompressionModel | compressionModel |
Serialize(ref DataStreamWriter, in RpcSerializerState, in T)
Serialize the command to the data stream.
Declaration
void Serialize(ref DataStreamWriter writer, in RpcSerializerState state, in T data)
Parameters
Type | Name | Description |
---|---|---|
DataStreamWriter | writer | An instance of a Unity.Collections.DataStreamWriter |
RpcSerializerState | state | An instance of RpcSerializerState used to carry some additional data and accessor for serializing the command field type. In particular, used to serialize entity |
T | data |
Serialize(ref DataStreamWriter, in RpcSerializerState, in T, in T, StreamCompressionModel)
Serialize the command to the data stream using delta compression.
Declaration
void Serialize(ref DataStreamWriter writer, in RpcSerializerState state, in T data, in T baseline, StreamCompressionModel compressionModel)
Parameters
Type | Name | Description |
---|---|---|
DataStreamWriter | writer | An instance of a Unity.Collections.DataStreamWriter |
RpcSerializerState | state | An instance of RpcSerializerState used to carry some additional data and accessor for serializing the command field type. In particular, used to serialize entity |
T | data | |
T | baseline | |
StreamCompressionModel | compressionModel |
ToFixedString()
Helper.
Declaration
FixedString64Bytes ToFixedString()
Returns
Type | Description |
---|---|
FixedString64Bytes | A short name, for use in packet dumps. |