Class NetworkTransport
The generic transport class all Netcode for GameObjects network transport implementations derive from. Use this class to add a custom transport. for an example of how a transport is integrated
Inherited Members
Namespace: Unity.Netcode
Assembly: Unity.Netcode.Runtime.dll
Syntax
public abstract class NetworkTransport : MonoBehaviour
Properties
IsSupported
Gets a value indicating whether this NetworkTransport is supported in the current runtime context This is used by multiplex adapters
Declaration
public virtual bool IsSupported { get; }
Property Value
Type | Description |
---|---|
bool |
|
ServerClientId
A constant clientId
that represents the server
When this value is found in methods such as Send
, it should be treated as a placeholder that means "the server"
Declaration
public abstract ulong ServerClientId { get; }
Property Value
Type | Description |
---|---|
ulong |
Methods
DisconnectLocalClient()
Disconnects the local client from the server
Declaration
public abstract void DisconnectLocalClient()
DisconnectRemoteClient(ulong)
Disconnects a client from the server
Declaration
public abstract void DisconnectRemoteClient(ulong clientId)
Parameters
Type | Name | Description |
---|---|---|
ulong | clientId | The clientId to disconnect |
GetCurrentRtt(ulong)
Gets the round trip time for a specific client. This method is optional
Declaration
public abstract ulong GetCurrentRtt(ulong clientId)
Parameters
Type | Name | Description |
---|---|---|
ulong | clientId | The clientId to get the RTT from |
Returns
Type | Description |
---|---|
ulong | Returns the round trip time in milliseconds |
Initialize(NetworkManager)
Initializes the transport
Declaration
public abstract void Initialize(NetworkManager networkManager = null)
Parameters
Type | Name | Description |
---|---|---|
NetworkManager | networkManager | optionally pass in NetworkManager |
InvokeOnTransportEvent(NetworkEvent, ulong, ArraySegment<byte>, float)
Invokes the OnTransportEvent. Invokation has to occur on the Unity thread in the Update loop.
Declaration
protected void InvokeOnTransportEvent(NetworkEvent eventType, ulong clientId, ArraySegment<byte> payload, float receiveTime)
Parameters
Type | Name | Description |
---|---|---|
NetworkEvent | eventType | The event type |
ulong | clientId | The clientId this event is for |
ArraySegment<byte> | payload | The incoming data payload |
float | receiveTime | The time the event was received, as reported by Time.realtimeSinceStartup. |
OnCurrentTopology()
Declaration
protected virtual NetworkTopologyTypes OnCurrentTopology()
Returns
Type | Description |
---|---|
NetworkTopologyTypes |
PollEvent(out ulong, out ArraySegment<byte>, out float)
Polls for incoming events, with an extra output parameter to report the precise time the event was received.
Declaration
public abstract NetworkEvent PollEvent(out ulong clientId, out ArraySegment<byte> payload, out float receiveTime)
Parameters
Type | Name | Description |
---|---|---|
ulong | clientId | The clientId this event is for |
ArraySegment<byte> | payload | The incoming data payload |
float | receiveTime | The time the event was received, as reported by Time.realtimeSinceStartup. |
Returns
Type | Description |
---|---|
NetworkEvent | Returns the event type |
Send(ulong, ArraySegment<byte>, NetworkDelivery)
Send a payload to the specified clientId, data and networkDelivery.
Declaration
public abstract void Send(ulong clientId, ArraySegment<byte> payload, NetworkDelivery networkDelivery)
Parameters
Type | Name | Description |
---|---|---|
ulong | clientId | The clientId to send to |
ArraySegment<byte> | payload | The data to send |
NetworkDelivery | networkDelivery | The delivery type (QoS) to send data with |
Shutdown()
Shuts down the transport
Declaration
public abstract void Shutdown()
StartClient()
Connects client to the server
Declaration
public abstract bool StartClient()
Returns
Type | Description |
---|---|
bool | Returns success or failure |
StartServer()
Starts to listening for incoming clients
Declaration
public abstract bool StartServer()
Returns
Type | Description |
---|---|
bool | Returns success or failure |
Events
OnTransportEvent
Occurs when the transport has a new transport network event. Can be used to make an event based transport instead of a poll based. Invocation has to occur on the Unity thread in the Update loop.
Declaration
public event NetworkTransport.TransportEventDelegate OnTransportEvent
Event Type
Type | Description |
---|---|
NetworkTransport.TransportEventDelegate |