Skip to main content

Unity.Netcode.NetworkTransport

Inheritance#

System.Object

NetworkTransport

UnityTransport

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#
TypeDescription
System.Booleantrue if is supported; otherwise, false.

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#
TypeDescription
System.UInt64

Methods#

DisconnectLocalClient()#

Disconnects the local client from the server

Declaration#
public abstract void DisconnectLocalClient()

DisconnectRemoteClient(UInt64)#

Disconnects a client from the server

Declaration#
public abstract void DisconnectRemoteClient(ulong clientId)
Parameters#
TypeNameDescription
System.UInt64clientIdThe clientId to disconnect

GetCurrentRtt(UInt64)#

Gets the round trip time for a specific client. This method is optional

Declaration#
public abstract ulong GetCurrentRtt(ulong clientId)
Parameters#
TypeNameDescription
System.UInt64clientIdThe clientId to get the RTT from
Returns#
TypeDescription
System.UInt64Returns the round trip time in milliseconds

Initialize(NetworkManager)#

Initializes the transport

Declaration#
public abstract void Initialize(NetworkManager networkManager = null)
Parameters#
TypeNameDescription
NetworkManagernetworkManageroptionally pass in NetworkManager

InvokeOnTransportEvent(NetworkEvent, UInt64, ArraySegment\<Byte>, Single)#

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#
TypeNameDescription
NetworkEventeventTypeThe event type
System.UInt64clientIdThe clientId this event is for
System.ArraySegment\<System.Byte>payloadThe incoming data payload
System.SinglereceiveTimeThe time the event was received, as reported by Time.realtimeSinceStartup.

PollEvent(out UInt64, out ArraySegment\<Byte>, out Single)#

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#
TypeNameDescription
System.UInt64clientIdThe clientId this event is for
System.ArraySegment\<System.Byte>payloadThe incoming data payload
System.SinglereceiveTimeThe time the event was received, as reported by Time.realtimeSinceStartup.
Returns#
TypeDescription
NetworkEventReturns the event type

Send(UInt64, ArraySegment\<Byte>, NetworkDelivery)#

Send a payload to the specified clientId, data and channelName.

Declaration#
public abstract void Send(ulong clientId, ArraySegment<byte> payload, NetworkDelivery networkDelivery)
Parameters#
TypeNameDescription
System.UInt64clientIdThe clientId to send to
System.ArraySegment\<System.Byte>payloadThe data to send
NetworkDeliverynetworkDeliveryThe 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#
TypeDescription
System.Boolean

StartServer()#

Starts to listening for incoming clients

Declaration#
public abstract bool StartServer()
Returns#
TypeDescription
System.Boolean

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#
TypeDescription
NetworkTransport.TransportEventDelegate