Class NetCodeConfig
Config file, allowing the package user to tweak netcode variables without having to write code. Create as many instances as you like.
Implements
Inherited Members
Namespace: Unity.NetCode
Assembly: Unity.NetCode.dll
Syntax
[CreateAssetMenu(menuName = "Multiplayer/NetCodeConfig Asset", fileName = "NetCodeConfig", order = 1)]
public class NetCodeConfig : ScriptableObject, IComparable<NetCodeConfig>
Fields
ClientServerTickRate
The ClientServerTickRate singleton is used to configure the client and server simulation time step,
server packet send rate and other related settings.
The singleton entity is automatically created for the clients in the NetworkStreamReceiveSystem
first update if not present.
On the server, by countrary, the entity is never automatically created and it is up to the user to create the singletong instance if
they need to.
It is not mandatory to set all the fields to a proper value when creating the singleton. It is sufficient to change only the relevant setting, and call the ResolveDefaults() method to configure the fields that does not have a value set.
<example>
class MyCustomClientServerBootstrap : ClientServerBootstrap
{
override public void Initialize(string defaultWorld)
{
base.Initialise(defaultWorld);
var customTickRate = new ClientServerTickRate();
//run at 30hz
customTickRate.simulationTickRate = 30;
customTickRate.ResolveDefault();
foreach(var world in World.All)
{
if(world.IsServer())
{
//In this case we only create on the server, but we can do the same also for the client world
var tickRateEntity = world.EntityManager.CreateSingleton(new ClientServerTickRate
{
SimulationTickRate = 30;
});
}
}
}
}
</example>
The ClientServerTickRate settings are synced as part of the of the initial client connection handshake. (ClientServerTickRateRefreshRequest data). The ClientServerTickRate should also be used to customise other server only timing settings, such as
- the maximum number of tick per frame
- the maximum number of tick per frame
- tick batching (MaxSimulationStepBatchSize and others.
Declaration
public ClientServerTickRate ClientServerTickRate
Field Value
Type | Description |
---|---|
ClientServerTickRate |
ClientTickRate
Create a ClientTickRate singleton in the client world (either at runtime or by loading it from sub-scene) to configure all the network time synchronization, interpolation delay, prediction batching and other setting for the client. See the individual fields for more information about the individual properties.
Declaration
public ClientTickRate ClientTickRate
Field Value
Type | Description |
---|---|
ClientTickRate |
EnableClientServerBootstrap
Denotes if the ClientServerBootstrap (or any derived version of it) should be triggered on game boot. Project-wide setting, overridable via the OverrideAutomaticNetCodeBootstrap MonoBehaviour.
Declaration
[Header("NetCode")]
[Tooltip("Denotes if the ClientServerBootstrap (or any derived version of it) should be triggered on game boot. Project-wide setting (when this config is applied in the Netcode tab), overridable via the OverrideAutomaticNetCodeBootstrap MonoBehaviour.")]
[SerializeField]
public NetCodeConfig.AutomaticBootstrapSetting EnableClientServerBootstrap
Field Value
Type | Description |
---|---|
NetCodeConfig.AutomaticBootstrapSetting |
GhostSendSystemData
Singleton entity that contains all the tweakable settings for the GhostSendSystem.
Declaration
public GhostSendSystemData GhostSendSystemData
Field Value
Type | Description |
---|---|
GhostSendSystemData |
IsGlobalConfig
Netcode helper: Allows you to add multiple configs to the PreloadedAssets list. There can only be one global one.
Declaration
public bool IsGlobalConfig
Field Value
Type | Description |
---|---|
bool |
Properties
Global
The Default NetcodeConfig asset, selected in ProjectSettings via the NetCode tab, and fetched at runtime via the PreloadedAssets. Set via RuntimeInitializeOnLoadMethodAttribute.
Declaration
public static NetCodeConfig Global { get; }
Property Value
Type | Description |
---|---|
NetCodeConfig |
Methods
CompareTo(NetCodeConfig)
Makes Find deterministic.
Declaration
public int CompareTo(NetCodeConfig other)
Parameters
Type | Name | Description |
---|---|---|
NetCodeConfig | other |
Returns
Type | Description |
---|---|
int |
Reset()
Setup default values.
Declaration
public void Reset()