Struct RpcQueue<TActionSerializer, TActionRequest>
A helper struct that should be used schedule outgoing RPCs. The RpcQueue is used internally by the code-generated systems that consume the SendRpcCommandRequest requests, and allow you to serialize the rpc (that will be sent into the OutgoingRpcDataStreamBuffer for the outgoing connection).
You can use the RpcQueue in your custom system by retrieving an instance for the given
TActionRequest
, TActionSerializer
pair from the RpcCollection
by calling the GetRpcQueue<TActionSerializer, TActionRequest>() method.
TActionRequest
Inherited Members
Namespace: Unity.NetCode
Syntax
public struct RpcQueue<TActionSerializer, TActionRequest>
where TActionSerializer : struct, IRpcCommandSerializer<TActionRequest> where TActionRequest : struct, IComponentData
Type Parameters
Name | Description |
---|---|
TActionSerializer | the struct type that implements the IRpcCommandSerializer interface. |
TActionRequest | the rpc type |
Remarks
If you intend to cache the retrieved queue (e.g. inside an OnCreate function in your system), you must ensure that your system is created after the RpcSystem by using the CreateAfterAttribute.
Methods
Schedule(DynamicBuffer<OutgoingRpcDataStreamBuffer>, ComponentLookup<GhostInstance>, TActionRequest)
Schedules an rpc to be sent through the network, by serializing and appending a new rpc packet into the OutgoingRpcDataStreamBuffer, for the given connection.
The binary rpc data has the following format:
- PacketType: short or long based on the DynamicAssemblyList.
- MsgLen: short, the length of the serialized data.
- RpcData: the binary data generated by invoking the TActionSerializer
serialize method.
Declaration
public void Schedule(DynamicBuffer<OutgoingRpcDataStreamBuffer> buffer, ComponentLookup<GhostInstance> ghostFromEntity, TActionRequest data)
Parameters
Type | Name | Description |
---|---|---|
DynamicBuffer<OutgoingRpcDataStreamBuffer> | buffer | |
ComponentLookup<GhostInstance> | ghostFromEntity | |
TActionRequest | data |
Exceptions
Type | Condition |
---|---|
InvalidOperationException |