docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    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
    ValueType.Equals(object)
    ValueType.GetHashCode()
    object.Equals(object, object)
    object.GetType()
    object.ReferenceEquals(object, object)
    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.

    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.

    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)