Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
8a7f227
update
NoelStephensUnity Aug 14, 2026
0c58dc8
update
NoelStephensUnity Aug 14, 2026
331f295
update
NoelStephensUnity Aug 15, 2026
e3267b7
update
NoelStephensUnity Aug 15, 2026
9856dea
update and test
NoelStephensUnity Aug 15, 2026
a578c34
fix
NoelStephensUnity Aug 15, 2026
202190c
chore
NoelStephensUnity Aug 15, 2026
1854d2d
fix: half float position encoding manufactures motion on resting objects
NoelStephensUnity Aug 18, 2026
20d9ccd
test: integration coverage for half float position encoding
NoelStephensUnity Aug 18, 2026
03966e5
Update changelog for NetworkTransform precision change
NoelStephensUnity Aug 19, 2026
8398dc3
Fix jitter issue with stationary non-authority objects
NoelStephensUnity Aug 19, 2026
3415b51
fix: Lerp smoothing frame rate dependence and freeze at maximum inter…
NoelStephensUnity Aug 19, 2026
363c94d
update
NoelStephensUnity Aug 19, 2026
e7031a8
test: Add NetworkTransform interpolation render time regression test
NoelStephensUnity Aug 19, 2026
6bf1ba9
fix: Derive NetworkTransform interpolation time from the server clock
NoelStephensUnity Aug 19, 2026
2b383b8
docs: Condense interpolation render time comments and changelog
NoelStephensUnity Aug 19, 2026
e945333
update
NoelStephensUnity Aug 19, 2026
dad9cd8
update
NoelStephensUnity Aug 19, 2026
6100893
test - update
NoelStephensUnity Aug 20, 2026
1bbdfdb
Merge branch 'develop-3.x.x' into fix/half-float-delta-position-dithe…
NoelStephensUnity Aug 20, 2026
36f66ec
test - update
NoelStephensUnity Aug 21, 2026
c7d3ecd
update
NoelStephensUnity Aug 21, 2026
ad3c564
Merge branch 'develop-3.x.x' into fix/half-float-delta-position-dithe…
NoelStephensUnity Aug 22, 2026
cd0422f
Merge branch 'develop-3.x.x' into fix/interpolator-lerp-smoothing-fra…
NoelStephensUnity Aug 22, 2026
d9d6658
Merge branch 'develop-3.x.x' into fix/networktransform-interpolation-…
NoelStephensUnity Aug 22, 2026
43ce4d9
fix: Return a duration from NetworkTransform.GetTickLatencyInSeconds
NoelStephensUnity Aug 23, 2026
e0a0191
style
NoelStephensUnity Aug 23, 2026
d06eead
test: Tolerate an adaptive tick latency in the tick latency tests
NoelStephensUnity Aug 23, 2026
9bdcd9b
test: Address review feedback on the render time and tick latency tests
NoelStephensUnity Aug 26, 2026
92c8052
fix: Only substitute the retention limit at a maximum interpolation t…
NoelStephensUnity Aug 26, 2026
d6f5649
test: Refer to the single non-authority instance directly
NoelStephensUnity Aug 26, 2026
038311b
update
NoelStephensUnity Aug 26, 2026
0de0857
test: Drop two NetworkDeltaPosition tests that cover an already cover…
NoelStephensUnity Aug 26, 2026
19ef4f2
Merge develop-3.x.x into fix/half-float-delta-position-dither-up-port
netcode-ci-service Aug 27, 2026
504fc1f
Merge develop-3.x.x into fix/interpolator-lerp-smoothing-framerate-up…
netcode-ci-service Aug 27, 2026
c745f7d
Merge develop-3.x.x into fix/networktransform-interpolation-render-ti…
netcode-ci-service Aug 27, 2026
8773a34
test: Move NetworkDeltaPositionTests into the editor test assembly
NoelStephensUnity Aug 27, 2026
5ed0118
test: Walk the stationary ticks with a while loop
NoelStephensUnity Aug 28, 2026
f4914d3
Merge develop-3.x.x into fix/networktransform-interpolation-render-ti…
netcode-ci-service Aug 28, 2026
595ceb5
Merge develop-3.x.x into fix/interpolator-lerp-smoothing-framerate-up…
netcode-ci-service Aug 28, 2026
05d7c7f
Merge develop-3.x.x into fix/half-float-delta-position-dither-up-port
netcode-ci-service Aug 28, 2026
d1d0e04
Merge remote-tracking branch 'origin/develop-3.x.x' into feat/network…
NoelStephensUnity Aug 28, 2026
06ce699
Merge remote-tracking branch 'origin/fix/half-float-delta-position-di…
NoelStephensUnity Aug 28, 2026
99c61dc
Merge remote-tracking branch 'origin/fix/interpolator-lerp-smoothing-…
NoelStephensUnity Aug 28, 2026
c7cccef
Merge remote-tracking branch 'origin/fix/networktransform-interpolati…
NoelStephensUnity Aug 28, 2026
5894d94
fix: batched transform state loses main thread flags, and the axis te…
NoelStephensUnity Aug 28, 2026
c884fed
fix: batched mode never cleared a transform state's change flags
NoelStephensUnity Aug 28, 2026
ea4f91f
feat: NetworkTransform synchronization mode is configured on NetworkC…
NoelStephensUnity Aug 30, 2026
2c7322f
chore: review pass over the batched NetworkTransform comments
NoelStephensUnity Aug 30, 2026
dfa358c
chore: PVP line endings, trailing whitespace, and an XmlDoc see tag
NoelStephensUnity Aug 30, 2026
c737a43
fix: stale connection config hash and a batched entry skipped by a de…
NoelStephensUnity Aug 30, 2026
e37263e
chore: standards check formatting
NoelStephensUnity Aug 30, 2026
4e5837f
fix: baseline test recorded a platform dependent quaternion
NoelStephensUnity Aug 30, 2026
112b302
docs: condense the ResetTo baseline measurement comment
NoelStephensUnity Aug 31, 2026
6b8df1d
style
NoelStephensUnity Aug 31, 2026
533c5d4
Merge branch 'develop-3.x.x' into feat/networktransform-handled-in-jobs
NoelStephensUnity Aug 31, 2026
cde309a
style
NoelStephensUnity Aug 31, 2026
63dab32
Merge branch 'feat/networktransform-handled-in-jobs' of https://githu…
NoelStephensUnity Aug 31, 2026
87a1da4
Update CHANGELOG
NoelStephensUnity Aug 31, 2026
13494da
update
NoelStephensUnity Aug 31, 2026
44dd3f1
Merge branch 'develop-3.x.x' into feat/networktransform-handled-in-jobs
NoelStephensUnity Aug 31, 2026
c1cc3fc
Merge branch 'develop-3.x.x' into feat/networktransform-handled-in-jobs
NoelStephensUnity Sep 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions com.unity.netcode.gameobjects/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,12 @@ Additional documentation and release notes are available at [Multiplayer Documen

### Added

- Added `NetworkConfig.TransformSyncMode`, which determines whether `NetworkTransform` instances detect and synchronize their state individually or as a single batched message per tick. It is set per `NetworkManager` under "Transform Synchronization" in the inspector or from script before a session starts, and the value the session starts with applies for the duration of that session. Every peer in a session has to use the same mode, which the connection configuration hash enforces. (#4123)

### Changed

- Changed `NetworkTransform.UseHalfFloatPrecision` to synchronize position with a resolution of approximately 1mm regardless of how far an object has travelled. Previously the resolution could degrade to approximately 3cm. This does not increase bandwidth, but projects using `NetworkTransform.UseUnreliableDeltas` will send full precision position updates more often. (#4129)

- All editor assembly definitions are renamed with `Unity.Netcode.GameObjects.x` variants
- `Unity.Netcode.Editor` → `Unity.Netcode.GameObjects.Editor`
- `Unity.Netcode.Editor.CodeGen` → `Unity.Netcode.GameObjects.Editor.CodeGen`
Expand All @@ -29,6 +33,8 @@ Additional documentation and release notes are available at [Multiplayer Documen
- Issue where `NetworkTransform.GetTickLatencyInSeconds` returned an absolute network timestamp that grew for as long as the session ran, rather than the tick latency as a duration in seconds that it is documented to return. (#4135)
- Issue where lerp smoothing was applied per frame instead of over time, which caused the `Lerp` and `SmoothDampening` interpolation types to smooth by different amounts at different frame rates. Results at 60fps are unchanged. (#4132)
- Issue where setting a maximum interpolation time of 1.0 would stop a `NetworkTransform` from interpolating at all when using the `Lerp` or `SmoothDampening` interpolation types. (#4132)
- Issue where objects using `NetworkTransform.UseHalfFloatPrecision` appeared to jitter on non-authority instances while they were stationary or coming to rest, even though the authority was not moving them. (#4129)
- Issue where re-enabling a `NetworkTransform` position axis that had drifted out of half float delta range while it was disabled would not teleport, because the per axis check assigned its result rather than accumulating it and an in-range axis discarded what an out-of-range one had found. (#4123)
- Issue with not being able to spawn initially disabled in-scene placed objects. (#4093)
- Issue with pre-instantiated network prefab instances being marked as in-scene placed. Now pre-instantiated network prefabs are dynamically spawned. (#4093)
- Issue where a user could spawn runtime created `NetworkObject` that has a GlobalObjectIdHash of zero. These are not valid instances and will no longer be allowed to spawn. (#4093)
Expand Down
15 changes: 15 additions & 0 deletions com.unity.netcode.gameobjects/Editor/NetworkManagerEditor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Unity.Netcode.Components;
using Unity.Netcode.GameObjects.Editor.Configuration;
using Unity.Netcode.Logging;
using UnityEditor;
Expand Down Expand Up @@ -51,6 +52,7 @@ public class NetworkManagerEditor : NetcodeEditorBase<NetworkManager>
private SerializedProperty m_SpawnTimeOutProperty;
private SerializedProperty m_RpcHashSizeProperty;
private SerializedProperty m_LoadSceneTimeOutProperty;
private SerializedProperty m_TransformSyncModeProperty;
private SerializedProperty m_PrefabsList;

private SerializedProperty m_NetworkProfileMetrics;
Expand Down Expand Up @@ -138,6 +140,7 @@ private void Initialize()
m_NetworkMessageMetrics = m_NetworkConfigProperty.FindPropertyRelative("NetworkMessageMetrics");
#endif
m_RpcHashSizeProperty = m_NetworkConfigProperty.FindPropertyRelative("RpcHashSize");
m_TransformSyncModeProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.TransformSyncMode));
m_PrefabsList = m_NetworkConfigProperty
.FindPropertyRelative(nameof(NetworkConfig.Prefabs))
.FindPropertyRelative(nameof(NetworkPrefabs.NetworkPrefabsLists));
Expand Down Expand Up @@ -183,6 +186,7 @@ private void CheckNullProperties()
#endif

m_RpcHashSizeProperty = m_NetworkConfigProperty.FindPropertyRelative("RpcHashSize");
m_TransformSyncModeProperty = m_NetworkConfigProperty.FindPropertyRelative(nameof(NetworkConfig.TransformSyncMode));
m_PrefabsList = m_NetworkConfigProperty
.FindPropertyRelative(nameof(NetworkConfig.Prefabs))
.FindPropertyRelative(nameof(NetworkPrefabs.NetworkPrefabsLists));
Expand Down Expand Up @@ -319,6 +323,17 @@ private void DisplayNetworkManagerProperties()
EditorGUILayout.PropertyField(m_PrefabsList);
}

EditorGUILayout.Space();
EditorGUILayout.LabelField("Transform Synchronization", EditorStyles.boldLabel);
EditorGUILayout.PropertyField(m_TransformSyncModeProperty, new GUIContent("Mode"));
if (m_NetworkManager.NetworkConfig.TransformSyncMode == TransformSyncModes.Batched)
{
EditorGUILayout.HelpBox(

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we deprecate UseUnreliableDeltas, then we can remove this, but if we do not then we have to make sure users know this (even though I doubt there are many users actually using that feature).

$"{nameof(NetworkTransform.UseUnreliableDeltas)} does not apply in this mode. Delivery is determined per state " +
"update as opposed to per component. Every peer in a session has to use the same mode.",
MessageType.Info);
}

EditorGUILayout.Space();
EditorGUILayout.LabelField("Scene Management Settings", EditorStyles.boldLabel);
EditorGUILayout.PropertyField(m_EnableSceneManagementProperty);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,11 @@ private void DisplayNetworkTransformProperties()
EditorGUILayout.Space();
EditorGUILayout.LabelField("Delivery", EditorStyles.boldLabel);
EditorGUILayout.PropertyField(m_TickSyncChildren);

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto on the notes, if deprecated this would change and no need to call it out.

// UseUnreliableDeltas only applies to per instance synchronization mode, but the mode is authored on
// the NetworkManager that will run this instance, which a prefab cannot know. So it is always drawn
// and the runtime ignores it under the batched mode, where delivery is determined per state update
// as opposed to per component.
// If both are set from a previous configuration, then SwitchTransformSpaceWhenParented takes
// precedence.
if (networkTransform.UseUnreliableDeltas && networkTransform.SwitchTransformSpaceWhenParented)
Expand All @@ -242,6 +247,7 @@ private void DisplayNetworkTransformProperties()
EditorGUILayout.Space();
EditorGUILayout.LabelField("Configurations", EditorStyles.boldLabel);

// SwitchTransformSpaceWhenParented is only constrained by UseUnreliableDeltas while the latter applies.
SetGUIActive(!networkTransform.UseUnreliableDeltas);
if (networkTransform.UseUnreliableDeltas)
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
using Unity.Burst;
using Unity.Collections;
using UnityEngine.Jobs;
using static Unity.Netcode.Components.NetworkTransform;

namespace Unity.Netcode.Components
{
/// <summary>
/// Motion Authority Only:
/// Detects <see cref="NetworkTransform"/> state changes for every registered instance in a parallel job.
/// </summary>
/// <remarks>
/// <see cref="CheckForStateChange(ref NetworkTransformState, ref NetworkDeltaPosition, ref TransformDeltaConfig, in TransformSample, bool, bool, bool)"/>
/// is the common method used for both per instance, runs on the main thread, and batched modes. This assures both paths detect changes in state identically.
/// </remarks>
[BurstCompile]
internal struct DetectTransformDeltaJob : IJobParallelForTransform
{
/// <summary>
/// The per instance input and output, parallel to the job's scheduled transforms.
/// </summary>
public NativeArray<TransformDeltaEntry> Entries;

/// <summary>
/// This job's primary entry point.
/// </summary>
/// <remarks>
/// TODO: Investigate ways to work around the fact that a Rigidbody's position and rotation cannot
/// be sampled from a job. As such, any NetworkTransform that is using Rigidbody for motion will
/// use the <see cref="UnityEngine.GameObject.transform"/> to detect changes in position and rotation
/// states on the authority side.
/// </remarks>
/// <param name="index">Index for the transform in question.</param>
/// <param name="transform">The job safe <see cref="TransformAccess"/></param>
public void Execute(int index, TransformAccess transform)
{
if (!transform.isValid)
{
return;

Check warning on line 39 in com.unity.netcode.gameobjects/Runtime/Components/DetectTransformDeltaJob.cs

View check run for this annotation

Codecov GitHub.com / codecov/patch

com.unity.netcode.gameobjects/Runtime/Components/DetectTransformDeltaJob.cs#L38-L39

Added lines #L38 - L39 were not covered by tests
}

var entry = Entries[index];
var flagStates = entry.State.FlagStates;
// Only ResolveTransformSpace can raise this on the batched path. The one caller that forces a full
// state update does so from CommitDetectedState on the main thread, after this job has run.
var forceState = false;

// Resolve the transform space before sampling, otherwise the wrong set of values gets compared.
var transformSpaceChanged = ResolveTransformSpace(ref entry.Config, ref flagStates, entry.TransformHasParent, false, ref forceState);
entry.State.FlagStates = flagStates;

var rotation = entry.Config.InLocalSpace ? transform.localRotation : transform.rotation;
entry.Sample.Position = entry.Config.InLocalSpace ? transform.localPosition : transform.position;
entry.Sample.Rotation = rotation;
entry.Sample.RotAngles = NetworkTransformMath.EulerAngles(rotation);
entry.Sample.Scale = transform.localScale;

entry.IsDirty = CheckForStateChange(ref entry.State, ref entry.HalfPositionState, ref entry.Config,
entry.Sample, false, forceState, transformSpaceChanged);

Entries[index] = entry;
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

48 changes: 30 additions & 18 deletions com.unity.netcode.gameobjects/Runtime/Components/HalfVector3.cs
Original file line number Diff line number Diff line change
Expand Up @@ -96,16 +96,19 @@ public void NetworkSerialize<T>(BufferSerializer<T> serializer) where T : IReade
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public Vector3 ToVector3()
{
Vector3 fullPrecision = Vector3.zero;
Vector3 fullConversion = math.float3(Axis);
for (int i = 0; i < Length; i++)
{
if (AxisToSynchronize[i])
{
fullPrecision[i] = fullConversion[i];
}
}
return fullPrecision;
return ToFloat3(Axis, AxisToSynchronize);
}

/// <summary>
/// The <see cref="float3"/> based implementation of <see cref="ToVector3"/>.
/// </summary>
/// <remarks>
/// This is a job safe method to be used in place of <see cref="ToVector3"/>.
/// </remarks>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static float3 ToFloat3(half3 axis, bool3 axisToSynchronize)
{
return math.select(float3.zero, math.float3(axis), axisToSynchronize);
}

/// <summary>
Expand All @@ -115,14 +118,23 @@ public Vector3 ToVector3()
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void UpdateFrom(ref Vector3 vector3)
{
var half3Full = math.half3(vector3);
for (int i = 0; i < Length; i++)
{
if (AxisToSynchronize[i])
{
Axis[i] = half3Full[i];
}
}
Axis = UpdatedAxis(Axis, math.float3(vector3), AxisToSynchronize);
}

/// <summary>
/// The <see cref="half3"/> based implementation of <see cref="UpdateFrom(ref Vector3)"/>.
/// </summary>
/// <remarks>
/// This is a job safe method to be used in place of <see cref="UpdateFrom(ref Vector3)"/>.
/// </remarks>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static half3 UpdatedAxis(half3 axis, float3 value, bool3 axisToSynchronize)
{
var updated = math.half3(value);
axis.x = axisToSynchronize.x ? updated.x : axis.x;
axis.y = axisToSynchronize.y ? updated.y : axis.y;
axis.z = axisToSynchronize.z ? updated.z : axis.z;
return axis;
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,13 @@ public void Clear()
/// Resets the current interpolator to the target value.
/// </summary>
/// <remarks>
/// This is used when first synchronizing/initializing and when telporting an object.
/// This is used when first synchronizing/initializing and when teleporting an object.<br />
/// No baseline measurement is recorded.<br />
/// A baseline is stamped with the local ServerTime.Time.<br />
/// The measurements that follow carry the older tick they were authored on.<br />
/// AddMeasurement would drop every one of those.<br />
/// The interpolator is left the way a freshly spawned one is instead.<br />
/// <paramref name="serverTime"/> is not used. Mark this obsolete and deprecate it at a later date.
/// </remarks>
/// <param name="targetValue">The target value to reset the interpolator to</param>
/// <param name="serverTime">The current server time</param>
Expand All @@ -287,7 +293,9 @@ internal void ResetTo(Transform parent, T targetValue, double serverTime)
{
// Clear the interpolator
Clear();
InternalReset(parent, targetValue, serverTime);

// No baseline measurement. See the ResetTo remarks above.
InternalReset(parent, targetValue, serverTime, false);
}

[MethodImpl(MethodImplOptions.AggressiveInlining)]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
using Unity.Burst;
using Unity.Collections;
using Unity.Jobs;
using Unity.Mathematics;

namespace Unity.Netcode.Components
{
/// <summary>
/// The NGO non-authority instance's transform state used by <see cref="InterpolateTransformJob"/>.
/// See also:
/// - <see cref="NativeInterpolator"/>
/// - <see cref="NativeInterpolatorState"/>
/// </summary>
internal struct InterpolationEntry
{
internal NativeInterpolatorState Position;
internal NativeInterpolatorState Rotation;
internal NativeInterpolatorState Scale;

/// <summary>
/// The delta frame time whether fixed or standard delta.
/// </summary>
internal float DeltaTime;

/// <summary>
/// The "ticks ago" time used to decide which buffered measurements are ready to consume.
/// </summary>
internal double TickLatencyAsTime;

/// <summary>
/// The render time used by <see cref="NetworkTransform.InterpolationTypes.LegacyLerp"/> only.
/// </summary>
internal double LegacyRenderTime;

internal double CurrentTime;
internal double MinDeltaTime;
internal double MaxDeltaTime;

internal NetworkTransform.InterpolationTypes PositionInterpolationType;
internal NetworkTransform.InterpolationTypes RotationInterpolationType;
internal NetworkTransform.InterpolationTypes ScaleInterpolationType;

internal bool SynchronizePosition;
internal bool SynchronizeRotation;
internal bool SynchronizeScale;

// Results, read back on the main thread and applied to the transform there.
internal float4 InterpolatedPosition;
internal float4 InterpolatedRotation;
internal float4 InterpolatedScale;
}

/// <summary>
/// Non-Authority Only:
/// Handles interpolation for every registered non-authority <see cref="NetworkTransform"/> in
/// a parallel job.
/// </summary>
/// <remarks>
/// This performs the buffer consumption and interpolation between two state updates only.<br />
/// Applying the results to the transforms stays on the main thread, which keeps this job free
/// of hierarchy write ordering.<br />
/// Each entry owns its own slice of <see cref="BufferedItems"/>, so no two indices address the same items.<br />
/// The whole array can be written without aliasing (access is to a distinct, independent memory region).
/// </remarks>
[BurstCompile]
internal struct InterpolateTransformJob : IJobParallelFor
{
public NativeArray<InterpolationEntry> Entries;

/// <summary>
/// The shared state measurement storage. Disabling the safety restriction is what allows each index to write
/// into its own slice of one array; <see cref="NativeInterpolatorState.BufferOffset"/> keeps those
/// slices disjoint.
/// </summary>
[NativeDisableParallelForRestriction]
public NativeArray<BufferedItemNative> BufferedItems;

public void Execute(int index)
{
var entry = Entries[index];

if (entry.SynchronizePosition)
{
entry.InterpolatedPosition = Advance(ref entry.Position, ref entry, entry.PositionInterpolationType);
}

if (entry.SynchronizeRotation)
{
entry.InterpolatedRotation = Advance(ref entry.Rotation, ref entry, entry.RotationInterpolationType);
}

if (entry.SynchronizeScale)
{
entry.InterpolatedScale = Advance(ref entry.Scale, ref entry, entry.ScaleInterpolationType);
}

Entries[index] = entry;
}

private float4 Advance(ref NativeInterpolatorState state, ref InterpolationEntry entry, NetworkTransform.InterpolationTypes interpolationType)
{
if (interpolationType == NetworkTransform.InterpolationTypes.LegacyLerp)
{
return NativeInterpolator.UpdateLegacy(ref state, ref BufferedItems, entry.DeltaTime, entry.LegacyRenderTime, entry.CurrentTime);
}

return NativeInterpolator.Update(ref state, ref BufferedItems, entry.DeltaTime, entry.TickLatencyAsTime,

Check warning on line 107 in com.unity.netcode.gameobjects/Runtime/Components/Interpolator/InterpolateTransformJob.cs

View check run for this annotation

Codecov GitHub.com / codecov/patch

com.unity.netcode.gameobjects/Runtime/Components/Interpolator/InterpolateTransformJob.cs#L107

Added line #L107 was not covered by tests
entry.MinDeltaTime, entry.MaxDeltaTime, interpolationType == NetworkTransform.InterpolationTypes.Lerp);
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading