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.
Inherited Members
Namespace: Unity.NetCode
Assembly: Unity.NetCode.dll
Syntax
public struct RpcQueue<TActionSerializer, TActionRequest> where TActionSerializer : struct, IRpcCommandSerializer<TActionRequest> where TActionRequest : struct, IComponentData
Type Parameters
Name | Description |
---|---|
TActionSerializer | The typename of the struct implementing the IRpcCommandSerializer<T> interface for the |
TActionRequest | The typename of a struct implementing the Unity.Entities.IComponentData interface. |
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 Unity.Entities.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 | Stream buffer for the rpc packetsk |
ComponentLookup<GhostInstance> | ghostFromEntity | Lookup for ghost instance |
TActionRequest | data | data |
Exceptions
Type | Condition |
---|---|
InvalidOperationException | If the RPC index cannot be found for the rpc type. |