Photon Fusion 2.0.0

Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Properties | List of all members
NetworkProjectConfig Class Reference

The core Fusion config file that is shared with all peers at startup. More...

Public Types

enum  PeerModes
 Options for running one or multiple peers in one Unity instance. Multiple is useful for testing multiple players/clients inside of the Unity editor without needing to build executables. Each peer is assigned its own independent physics scene and NetworkRunner instance. More...
 
enum  ReplicationFeatures
 

Public Member Functions

int? GetExecutionOrder (Type type)
 Get the execution order for a given type. If the type is registered, returns null.
 
override string ToString ()
 ToString() implementation.
 

Static Public Member Functions

static NetworkProjectConfig Deserialize (string data)
 De-serialize a NetworkProjectConfig from a JSON string (typically sent by the Room's Creator).
 
static string Serialize (NetworkProjectConfig config)
 Serialize a NetworkProjectConfig into a JSON string.
 
static void UnloadGlobal ()
 Unloads Global, if already loaded. If loading Global has faulted, resets the state and next call to the Global accessor will attempt to load the config again.
 

Public Attributes

string[] AssembliesToWeave
 Names of assemblies Fusion is going to weave. Not case sensitive.
 
bool CheckNetworkedPropertiesBeingEmpty = false
 If set, the weaver will check if NetworkedAttribute properties getters and setters are empty.
 
bool CheckRpcAttributeUsage = false
 If set, the weaver will check if RpcAttribute is used in types that do not support it. This requires all types to be scanned and can increase weaving duration.
 
EncryptionConfig EncryptionConfig = new EncryptionConfig()
 Reference to EncryptionConfig settings for this NetworkProjectConfig
 
bool EnqueueIncompleteSynchronousSpawns
 This flag changes the behaviour of NetworkRunner.Spawn<T> to return null (instead of throwing an exception) and NetworkRunner.TrySpawn<T>) to return NetworkSpawnStatus.Queued if Fusion was unable to load a prefab synchronously (e.g. because it was Addressable). Fusion will enqueue the spawn and attempt to perform it the next frame, until successful. Useful for transition from Fusion 1.x.
 
HeapConfiguration Heap = new HeapConfiguration()
 Heap Settings.
 
bool HideNetworkObjectInactivityGuard = false
 Inactive NetworkObject need special handling in case they get destroyed without ever being activated. This is achieved with adding a nested GameObject called "NetworkObjectInactivityGuard" that tracks the OnDestroy message. HideNetworkObjectInactivityGuard can be used to control whether these guards are visible in the hierarchy or not.
 
HostMigrationConfig HostMigration = new HostMigrationConfig()
 Reference to HostMigration settings for this NetworkProjectConfig
 
bool InvokeRenderInBatchMode = true
 Signal if the SimulationBehaviour.Render callbacks should be invoked in Batch Mode.
 
LagCompensationSettings LagCompensation = new LagCompensationSettings()
 Advanced lag compensation buffer settings.
 
NetworkConfiguration Network = new NetworkConfiguration()
 Reference to NetworkConfiguration settings for this NetworkProjectConfig.
 
NetworkSimulationConfiguration NetworkConditions = new NetworkSimulationConfiguration()
 Settings for simulating network conditions of latency and loss.
 
bool NetworkIdIsObjectName
 Signal if the NetworkId of the NetworkObject should be included on the name of the GameObject.
 
bool NullChecksForNetworkedProperties = true
 If set, the weaver will add a check to all [Networked] properties on each NetworkBehaviour to verify if owing NetworkObject has been attached to.
 
PeerModes PeerMode
 Setting for whether multiple peers can run per Unity instance (typically to allow easy testing of multiple peers inside of the editor).
 
NetworkPrefabTable PrefabTable = new NetworkPrefabTable()
 Reference to the NetworkPrefabTable instance for this NetworkProjectConfig.
 
SimulationConfig Simulation = new SimulationConfig()
 Reference to SimulationConfig settings for this NetworkProjectConfig.
 
TimeSyncConfiguration TimeSynchronizationOverride
 this can be used to override the time synchronization from code
 
string TypeId = CurrentTypeId
 Current NetworkProjectConfig Type ID.
 
bool UseSerializableDictionary = true
 Use Fusion.SerializableDictionary to store [Networked] dictionary properties initial value. If unchecked, the weaver will emit System.Generic.Dictionary instead - a type that's not Unity-serializable, but custom serializers (e.g. Odin) may support it.
 
int Version = CurrentVersion
 Current NetworkProjectConfig version.
 

Static Public Attributes

static NetworkRunner. BuildTypes
 Get the version information for the Fusion.Runntime.dll.
 
const string CurrentTypeId = nameof(NetworkProjectConfig)
 Current NetworkProjectConfig Type ID.
 
const int CurrentVersion = 1
 Current NetworkProjectConfig version.
 
const string DefaultResourceName = nameof(NetworkProjectConfig)
 Default file name for the NetworkProjectConfig asset.
 

Properties

static NetworkRunner.System.Diagnostics.FileVersionInfo FusionVersionInfo [get]
 
static NetworkProjectConfig Global [get]
 Reference for the default NetworkProjectConfig. By default, loads a resource named "NetworkProjectConfig". This behaviour can be changed with an attribute FusionGlobalScriptableObjectLoaderMethodAttribute.
 

Detailed Description

The core Fusion config file that is shared with all peers at startup.

Member Enumeration Documentation

◆ PeerModes

enum PeerModes

Options for running one or multiple peers in one Unity instance. Multiple is useful for testing multiple players/clients inside of the Unity editor without needing to build executables. Each peer is assigned its own independent physics scene and NetworkRunner instance.

Enumerator
Single 

This is the normal use case, where every build and the editor run a single server, host or client peer.

Multiple 

This is the optional use case, which allows running multiple peers in the Unity editor, or in a build.

◆ ReplicationFeatures

Eventual Consistency NetworkObject state replication options.

Scheduling enables automatic prioritization of objects when culling occurs (when Object's are not replicated due to exceeding per tick data limits, they increase in priority on the following Tick).

Interest Management enables NetworkObject Area Of Interest and Explicit Interest features.

Enumerator
None 

No special replication handling. This setting is ideal if your project never exceeds per tick data limits during gameplay.

Scheduling 

When changed Network Objects are not replicated by the server to a client due to culling (data per tick limit was reached) the server increases the priority of that Network Object for the next outgoing Tick update to that client.

SchedulingAndInterestManagement 

In addition to scheduling, Interest Management features are also enabled (Area Of Interest and Explicit Interest).

Member Function Documentation

◆ Deserialize()

static NetworkProjectConfig Deserialize ( string  data)
static

De-serialize a NetworkProjectConfig from a JSON string (typically sent by the Room's Creator).

Parameters
dataJSON string of a serialized NetworkProjectConfig
Returns
NetworkProjectConfig reference de-serialized from JSON string

◆ GetExecutionOrder()

int? GetExecutionOrder ( Type  type)

Get the execution order for a given type. If the type is registered, returns null.

Parameters
typeType to check for the execution order.
Returns
Execution order for the type, or null if not registered.

◆ Serialize()

static string Serialize ( NetworkProjectConfig  config)
static

Serialize a NetworkProjectConfig into a JSON string.

Parameters
configNetworkProjectConfig reference
Returns
JSON String

Member Data Documentation

◆ AssembliesToWeave

string [] AssembliesToWeave
Initial value:
= new string[] {
"Fusion.Unity",
"Assembly-CSharp",
"Assembly-CSharp-firstpass",
"Fusion.Addons.Physics",
"Fusion.Addons.FSM",
}

Names of assemblies Fusion is going to weave. Not case sensitive.