The core Fusion config file that is shared with all peers at startup. More...
Inherits IConfigurationSanityCheck.
Public Types | |
enum class | 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 class | ReplicationFeatures |
Public Member Functions | |
int? | GetExecutionOrder (Type type) |
Get the execution order for a given type. If the type is registered, returns null. More... | |
void | SanityCheck () |
override string | ToString () |
ToString() implementation. More... | |
Static Public Member Functions | |
static NetworkProjectConfig | Deserialize (string data) |
De-serialize a NetworkProjectConfig from a JSON string (typically sent by the Room's Creator). More... | |
static string | Serialize (NetworkProjectConfig config) |
Serialize a NetworkProjectConfig into a JSON string. More... | |
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. More... | |
Public Attributes | |
bool | AllowClientServerModesInWebGL = false |
Allow the use of Client-Server modes in WebGL builds. This is not recommended, as it can lead to degraded performance. Client-Server modes are not supported in WebGL builds by default, this setting allows its usage despite the limitations. Read more about the limitations of WebGL builds in the Fusion documentation at https://doc.photonengine.com/fusion/v2/fusion-intro. More... | |
string[] | AssembliesToWeave |
Names of assemblies Fusion is going to weave. Not case sensitive. More... | |
bool | CheckNetworkedPropertiesBeingEmpty = false |
If set, the weaver will check if NetworkedAttribute properties getters and setters are empty. More... | |
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. More... | |
EncryptionConfig | EncryptionConfig = new EncryptionConfig() |
Reference to EncryptionConfig settings for this NetworkProjectConfig More... | |
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. More... | |
HeapConfiguration | Heap = new HeapConfiguration() |
Heap Settings More... | |
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. More... | |
HostMigrationConfig | HostMigration = new HostMigrationConfig() |
Reference to HostMigration settings for this NetworkProjectConfig More... | |
bool | InvokeRenderInBatchMode = true |
Signal if the SimulationBehaviour.Render callbacks should be invoked in Batch Mode. More... | |
LagCompensationSettings | LagCompensation = new LagCompensationSettings() |
Advanced lag compensation buffer settings. More... | |
NetworkConfiguration | Network = new NetworkConfiguration() |
Reference to NetworkConfiguration settings for this NetworkProjectConfig. More... | |
NetworkSimulationConfiguration | NetworkConditions = new NetworkSimulationConfiguration() |
Settings for simulating network conditions of latency and loss. More... | |
bool | NetworkIdIsObjectName |
Signal if the NetworkId of the NetworkObject should be included on the name of the GameObject More... | |
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. More... | |
PeerModes | PeerMode |
Setting for whether multiple peers can run per Unity instance (typically to allow easy testing of multiple peers inside of the editor). More... | |
NetworkPrefabTable | PrefabTable = new NetworkPrefabTable() |
Reference to the NetworkPrefabTable instance for this NetworkProjectConfig. More... | |
SimulationConfig | Simulation = new SimulationConfig() |
Reference to SimulationConfig settings for this NetworkProjectConfig. More... | |
TimeSyncConfiguration | TimeSynchronizationOverride |
this can be used to override the time synchronization from code More... | |
string | TypeId = CurrentTypeId |
Current NetworkProjectConfig Type ID More... | |
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. More... | |
int | Version = CurrentVersion |
Current NetworkProjectConfig version More... | |
Static Public Attributes | |
static NetworkRunner. | BuildTypes |
Get the version information for the Fusion.Runntime.dll. More... | |
const string | CurrentTypeId = nameof(NetworkProjectConfig) |
Current NetworkProjectConfig Type ID More... | |
const int | CurrentVersion = 1 |
Current NetworkProjectConfig version More... | |
const string | DefaultResourceName = nameof(NetworkProjectConfig) |
Default file name for the NetworkProjectConfig asset More... | |
Properties | |
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. More... | |
The core Fusion config file that is shared with all peers at startup.
|
strong |
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.
|
strong |
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). |
|
static |
De-serialize a NetworkProjectConfig from a JSON string (typically sent by the Room's Creator).
data | JSON string of a serialized NetworkProjectConfig |
int? GetExecutionOrder | ( | Type | type | ) |
Get the execution order for a given type. If the type is registered, returns null.
type | Type to check for the execution order. |
|
static |
Serialize a NetworkProjectConfig into a JSON string.
config | NetworkProjectConfig reference |
override string ToString | ( | ) |
ToString() implementation.
|
static |
bool AllowClientServerModesInWebGL = false |
Allow the use of Client-Server modes in WebGL builds. This is not recommended, as it can lead to degraded performance. Client-Server modes are not supported in WebGL builds by default, this setting allows its usage despite the limitations. Read more about the limitations of WebGL builds in the Fusion documentation at https://doc.photonengine.com/fusion/v2/fusion-intro.
string [] AssembliesToWeave |
Names of assemblies Fusion is going to weave. Not case sensitive.
|
static |
Get the version information for the Fusion.Runntime.dll.
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.
|
static |
Current NetworkProjectConfig Type ID
|
static |
Current NetworkProjectConfig version
|
static |
Default file name for the NetworkProjectConfig asset
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.
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
|
staticget |
Reference for the default NetworkProjectConfig. By default, loads a resource named "NetworkProjectConfig". This behaviour can be changed with an attribute FusionGlobalScriptableObjectLoaderMethodAttribute.