Class NetcodeServerRateManager
Server world's main update rate manager. Determines whether simulation system group should run or not, depending on tick rate and accumulator logic.
Implements
Inherited Members
Namespace: Unity.NetCode
Assembly: Unity.NetCode.dll
Syntax
public class NetcodeServerRateManager : IRateManager
Properties
Timestep
Internal
Declaration
public float Timestep { get; set; }
Property Value
Type | Description |
---|---|
float |
Methods
ShouldGroupUpdate(ComponentSystemGroup)
Internal (do not use) method called on system group edges, to determine if should enter or exit
Declaration
public bool ShouldGroupUpdate(ComponentSystemGroup group)
Parameters
Type | Name | Description |
---|---|---|
ComponentSystemGroup | group | group |
Returns
Type | Description |
---|---|
bool | If the group should update |
WillUpdate()
Utility method to help determine if the server Unity.Entities.SimulationSystemGroup will update this frame or not. This should only be valid when TargetFrameRateMode is set to BusyWait This can be useful if your host's rate mode is set to BusyWait and you want to do client operations during frames where your server isn't ticking. Ex: for a tick rate of 60Hz and a frame rate of 120Hz, a client hosted server would execute 2 frames for every tick. In other words, your game would be less busy one frame out of two. This can be used to do extra operations. This method can be accessible through the server's rate manager.
Declaration
public bool WillUpdate()
Returns
Type | Description |
---|---|
bool | Whether the server's simulation system group will update this frame or not |
Examples
[WorldSystemFilter(WorldSystemFilterFlags.ServerSimulation)] [UpdateInGroup(typeof(InitializationSystemGroup))] public partial class DoExtraWorkSystem : SystemBase { protected override void OnUpdate() { var serverRateManager = ClientServerBootstrap.ServerWorld.GetExistingSystemManaged<SimulationSystemGroup>().RateManager as NetcodeServerRateManager; if (!serverRateManager.WillUpdate()) DoExtraWork(); // We know this frame will be less busy, we can do extra work } }