diff --git a/com.unity.netcode.gameobjects/Runtime/Timing/NetworkTime.cs b/com.unity.netcode.gameobjects/Runtime/Timing/NetworkTime.cs
index 916a35e6c4..b66ad3ef21 100644
--- a/com.unity.netcode.gameobjects/Runtime/Timing/NetworkTime.cs
+++ b/com.unity.netcode.gameobjects/Runtime/Timing/NetworkTime.cs
@@ -50,6 +50,11 @@ public struct NetworkTime
///
public float FixedDeltaTime => (float)m_TickInterval;
+ ///
+ /// Gets the fixed delta time as a double. This value is calculated by dividing 1.0 by the and stays constant.
+ ///
+ public double FixedDeltaTimeAsDouble => m_TickInterval;
+
///
/// Gets the amount of network ticks which have passed until reaching the current time value.
///
diff --git a/com.unity.netcode.gameobjects/Tests/Runtime/Timing/NetworkTimeSystemTests.cs b/com.unity.netcode.gameobjects/Tests/Runtime/Timing/NetworkTimeSystemTests.cs
index 992dbb2293..627fe8776a 100644
--- a/com.unity.netcode.gameobjects/Tests/Runtime/Timing/NetworkTimeSystemTests.cs
+++ b/com.unity.netcode.gameobjects/Tests/Runtime/Timing/NetworkTimeSystemTests.cs
@@ -62,7 +62,7 @@ public IEnumerator PlayerLoopTimeTest_WithDifferentTimeScale([Values(0.0f, 0.1f,
public IEnumerator CorrectAmountTicksTest()
{
NetworkTickSystem tickSystem = NetworkManager.Singleton.NetworkTickSystem;
- float delta = tickSystem.LocalTime.FixedDeltaTime;
+ double delta = tickSystem.LocalTime.FixedDeltaTimeAsDouble;
int previous_localTickCalculated = 0;
int previous_serverTickCalculated = 0;
@@ -70,27 +70,26 @@ public IEnumerator CorrectAmountTicksTest()
{
yield return null;
- var tickCalculated = tickSystem.LocalTime.Time / delta;
- previous_localTickCalculated = (int)tickCalculated;
+ var localTickCalculated = tickSystem.LocalTime.Time / delta;
+ previous_localTickCalculated = (int)localTickCalculated;
// This check is needed due to double division imprecision of large numbers
- if ((tickCalculated - previous_localTickCalculated) >= 0.999999999999)
+ if ((localTickCalculated - previous_localTickCalculated) >= 0.999999999999)
{
previous_localTickCalculated++;
}
-
- tickCalculated = NetworkManager.Singleton.ServerTime.Time / delta;
- previous_serverTickCalculated = (int)tickCalculated;
+ var serverTickCalculated = tickSystem.ServerTime.Time / delta;
+ previous_serverTickCalculated = (int)serverTickCalculated;
// This check is needed due to double division imprecision of large numbers
- if ((tickCalculated - previous_serverTickCalculated) >= 0.999999999999)
+ if ((serverTickCalculated - previous_serverTickCalculated) >= 0.999999999999)
{
previous_serverTickCalculated++;
}
- Assert.AreEqual(previous_localTickCalculated, NetworkManager.Singleton.LocalTime.Tick, $"Calculated local tick {previous_localTickCalculated} does not match local tick {NetworkManager.Singleton.LocalTime.Tick}!");
- Assert.AreEqual(previous_serverTickCalculated, NetworkManager.Singleton.ServerTime.Tick, $"Calculated server tick {previous_serverTickCalculated} does not match server tick {NetworkManager.Singleton.ServerTime.Tick}!");
+ Assert.AreEqual(previous_localTickCalculated, NetworkManager.Singleton.LocalTime.Tick, $"Calculated local tick {previous_localTickCalculated} does not match local tick {NetworkManager.Singleton.LocalTime.Tick}!]n Local Tick-Calc: {localTickCalculated} LocalTime: {tickSystem.LocalTime.Time} | Server Tick-Calc: {serverTickCalculated} ServerTime: {tickSystem.ServerTime.Time} | TickDelta: {delta}");
+ Assert.AreEqual(previous_serverTickCalculated, NetworkManager.Singleton.ServerTime.Tick, $"Calculated server tick {previous_serverTickCalculated} does not match server tick {NetworkManager.Singleton.ServerTime.Tick}!\n Local Tick-Calc: {localTickCalculated} LocalTime: {tickSystem.LocalTime.Time} | Server Tick-Calc: {serverTickCalculated} ServerTime: {tickSystem.ServerTime.Time} | TickDelta: {delta}");
Assert.AreEqual((float)NetworkManager.Singleton.LocalTime.Time, (float)NetworkManager.Singleton.ServerTime.Time, $"Local time {(float)NetworkManager.Singleton.LocalTime.Time} is not approximately server time {(float)NetworkManager.Singleton.ServerTime.Time}!", FloatComparer.s_ComparerWithDefaultTolerance);
}
}