Skip to main content

Unity.Netcode.NetworkSceneManager

Main class for managing network scenes when EnableSceneManagement is enabled. Uses the Unity.Netcode.SceneEventMessage message to communicate Unity.Netcode.SceneEventData between the server and client(s)

Inheritance#

System.Dynamic.ExpandoObject

System.Dynamic.ExpandoObject

Implements#

System.IDisposable

Inherited Members#

Object.Equals(Object)

Object.Equals(Object, Object)

Object.GetHashCode()

Object.GetType()

Object.MemberwiseClone()

Object.ReferenceEquals(Object, Object)

Object.ToString()

Namespace: System.Dynamic.ExpandoObject#
Assembly: MLAPI.dll#
Syntax#
public class NetworkSceneManager : IDisposable

VerifySceneBeforeLoading#

Delegate handler defined by NetworkSceneManager.VerifySceneBeforeLoadingDelegateHandler that is invoked before the server or client loads a scene during an active netcode game session. Client Side: In order for clients to be notified of this condition you must assign the VerifySceneBeforeLoading delegate handler. Server Side: LoadScene(String, LoadSceneMode) will return SceneFailedVerification.

Declaration#

public NetworkSceneManager.VerifySceneBeforeLoadingDelegateHandler VerifySceneBeforeLoading

Field Value#

TypeDescription
NetworkSceneManager.VerifySceneBeforeLoadingDelegateHandler

#

ClientSynchronizationMode#

LoadSceneMode.Single: All currently loaded scenes on the client will be unloaded and the server's currently active scene will be loaded in single mode on the client unless it was already loaded.

LoadSceneMode.Additive: All currently loaded scenes are left as they are and any newly loaded scenes will be loaded additively. Users need to determine which scenes are valid to load via the VerifySceneBeforeLoading method.

Declaration#

public LoadSceneMode ClientSynchronizationMode { get; }

Property Value#

TypeDescription
LoadSceneMode

#

DisableValidationWarnings(Boolean)#

When set to true, this will disable the console warnings about a scene being invalidated.

Declaration#

public void DisableValidationWarnings(bool disabled)

Parameters#

TypeNameDescription
System.Booleandisabledtrue/false

Dispose()#

Handle NetworkSeneManager clean up

Declaration#

public void Dispose()

LoadScene(String, LoadSceneMode)#

Server side: Loads the scene name in either additive or single loading mode. When applicable, the is delivered within the SceneEvent via OnSceneEvent

Declaration#

public SceneEventProgressStatus LoadScene(string sceneName, LoadSceneMode loadSceneMode)

Parameters#

TypeNameDescription
System.StringsceneNamethe name of the scene to be loaded
LoadSceneModeloadSceneMode

Returns#

TypeDescription
SceneEventProgressStatusSceneEventProgressStatus (Started means it was successful)

SetClientSynchronizationMode(LoadSceneMode)#

This will change how clients are initially synchronized. LoadSceneMode.Single: All currently loaded scenes on the client will be unloaded and the server's currently active scene will be loaded in single mode on the client unless it was already loaded.

LoadSceneMode.Additive: All currently loaded scenes are left as they are and any newly loaded scenes will be loaded additively. Users need to determine which scenes are valid to load via the VerifySceneBeforeLoading method.

Declaration#

public void SetClientSynchronizationMode(LoadSceneMode mode)

Parameters#

TypeNameDescription
LoadSceneModemodefor initial client synchronization

UnloadScene(Scene)#

Server Side: Unloads an additively loaded scene. If you want to unload a mode loaded scene load another scene. When applicable, the is delivered within the SceneEvent via the OnSceneEvent

Declaration#

public SceneEventProgressStatus UnloadScene(Scene scene)

Parameters#

TypeNameDescription
Scenescene

Returns#

TypeDescription
SceneEventProgressStatusSceneEventProgressStatus (Started means it was successful)

#

OnLoad#

Invoked when a Load event is started by the server The server and client(s) will receive this notification

Declaration#

public event NetworkSceneManager.OnLoadDelegateHandler OnLoad

Event Type#

TypeDescription
NetworkSceneManager.OnLoadDelegateHandler

OnLoadComplete#

Invoked when a LoadComplete event is generated by a client or server. The server receives this message from all clients (including itself). Each client receives their own notification sent to the server.

Declaration#

public event NetworkSceneManager.OnLoadCompleteDelegateHandler OnLoadComplete

Event Type#

TypeDescription
NetworkSceneManager.OnLoadCompleteDelegateHandler

OnLoadEventCompleted#

Invoked when a LoadEventCompleted event is generated by the server. This event signifies the end of an existing Load event as it pertains to all clients connected when the event was started. This event signifies that all clients (and server) have finished the Load event. Note: this is useful to know when all clients have loaded the same scene (single or additive mode)

Declaration#

public event NetworkSceneManager.OnEventCompletedDelegateHandler OnLoadEventCompleted

Event Type#

TypeDescription
NetworkSceneManager.OnEventCompletedDelegateHandler

OnSceneEvent#

Event that will notify the local client or server of all scene events that take place For more details review over SceneEvent, Unity.Netcode.SceneEventData, and SceneEventType Subscribe to this event to receive all SceneEventType notifications

Alternate Single Event Type Notification Registration Options To receive only a specific event type notification or a limited set of notifications you can alternately subscribe to each notification type individually via the following events: -- OnLoad Invoked only when a Load event is being processed -- OnUnload Invoked only when an Unload event is being processed -- OnSynchronize Invoked only when a Synchronize event is being processed -- OnLoadEventCompleted Invoked only when a LoadEventCompleted event is being processed -- OnUnloadEventCompleted Invoked only when an UnloadEventCompleted event is being processed -- OnLoadComplete Invoked only when a LoadComplete event is being processed -- OnUnloadComplete Invoked only when an UnloadComplete event is being processed -- OnSynchronizeComplete Invoked only when a SynchronizeComplete event is being processed

Declaration#

public event NetworkSceneManager.SceneEventDelegate OnSceneEvent

Event Type#

TypeDescription
NetworkSceneManager.SceneEventDelegate

OnSynchronize#

Invoked when a Synchronize event is started by the server after a client is approved for connection in order to synchronize the client with the currently loaded scenes and NetworkObjects. This event signifies the beginning of the synchronization event. The server and client will receive this notification Note: this event is generated on a per newly connected and approved client basis

Declaration#

public event NetworkSceneManager.OnSynchronizeDelegateHandler OnSynchronize

Event Type#

TypeDescription
NetworkSceneManager.OnSynchronizeDelegateHandler

OnSynchronizeComplete#

Invoked when a SynchronizeComplete event is generated by a client. The server receives this message from the client, but will never generate this event for itself. Each client receives their own notification sent to the server. Note: This is useful to know that a client has completed the entire connection sequence, loaded all scenes, and synchronized all NetworkObjects.

Declaration#

public event NetworkSceneManager.OnSynchronizeCompleteDelegateHandler OnSynchronizeComplete

Event Type#

TypeDescription
NetworkSceneManager.OnSynchronizeCompleteDelegateHandler

OnUnload#

Invoked when a Unload event is started by the server The server and client(s) will receive this notification

Declaration#

public event NetworkSceneManager.OnUnloadDelegateHandler OnUnload

Event Type#

TypeDescription
NetworkSceneManager.OnUnloadDelegateHandler

OnUnloadComplete#

Invoked when a UnloadComplete event is generated by a client or server. The server receives this message from all clients (including itself). Each client receives their own notification sent to the server.

Declaration#

public event NetworkSceneManager.OnUnloadCompleteDelegateHandler OnUnloadComplete

Event Type#

TypeDescription
NetworkSceneManager.OnUnloadCompleteDelegateHandler

OnUnloadEventCompleted#

Invoked when a UnloadEventCompleted event is generated by the server. This event signifies the end of an existing Unload event as it pertains to all clients connected when the event was started. This event signifies that all clients (and server) have finished the Unload event. Note: this is useful to know when all clients have unloaded a specific scene. The will always be for this event

Declaration#

public event NetworkSceneManager.OnEventCompletedDelegateHandler OnUnloadEventCompleted

Event Type#

TypeDescription
NetworkSceneManager.OnEventCompletedDelegateHandler

Implements#

System.IDisposable