Skip to content

Releases: Unity-Technologies/com.unity.netcode.gameobjects

2.4.4

21 Jul 08:20
f4d9185
Compare
Choose a tag to compare

[2.4.4] - 2025-07-07

Added

  • Added documentation to package repository.

1.13.1

21 Jul 08:19
7771224
Compare
Choose a tag to compare

[1.13.1] - 2025-07-07

Added

  • Added documentation to package repository.

2.4.3

27 Jun 13:19
31017e2
Compare
Choose a tag to compare

[2.4.3] - 2025-06-27

Fixed

  • Fixed issue where spawned objects with NetworkObject.DontDestroyWithOwner set to false would not be destroyed when using a client-server network topology. (#3522)

2.4.2

16 Jun 16:30
7bbc1c3
Compare
Choose a tag to compare

[2.4.2] - 2025-06-13

Fixed

  • Fixed NullReferenceException on NetworkList when used without a NetworkManager in scene. (#3503)
  • Fixed issue where NetworkClient could persist some settings if re-using the same NetworkManager instance. (#3491)
  • Fixed issue where a pooled NetworkObject was not resetting the internal latest parent property when despawned. (#3491)
  • Fixed issue where the initial client synchronization pre-serialization process was not excluding spawned NetworkObject instances that already had pending visibility for the client being synchronized. (#3488)
  • Fixed issue where there was a potential for a small memory leak in the ConnectionApprovedMessage. (#3486)

2.4.1

16 Jun 16:27
Compare
Choose a tag to compare

[2.4.1] - 2025-06-11

Added

  • Added: Full XML API documentation coverage primarily focused around the test helpers API. (#3444)

Changed

  • Changed: Assembly names while keeping the same namespaces. If your project is using the Unity.Netcode.TestHelpers.Runtime assembly then you need to switch asmdef references to Unity.Netcode.Runtime.Tests. (#3444)
  • Changed: Migrated multiplayer metrics tests to Multiplayer Tools repository and removed the multiplayer tools test project. (#3444)

2.4.0

05 Jun 14:16
Compare
Choose a tag to compare

[2.4.0] - 2025-06-02

Added

  • Added SinglePlayerTransport that provides the ability to start as a host for a single player network session. (#3473)
  • When using UnityTransport >=2.4 and Unity >= 6000.1.0a1, SetConnectionData will accept a fully qualified hostname instead of an IP as a connect address on the client side. (#3441)

Fixed

  • Fixed issue where the NetworkObject.DontDestroyWithOwner was not being honored. (#3477)
  • Fixed issue where non-authority NetworkTransform instances would not allow non-synchronized axis values to be updated locally. (#3471)
  • Fixed issue where invoking NetworkObject.NetworkShow and NetworkObject.ChangeOwnership consecutively within the same call stack location could result in an unnecessary change in ownership error message generated on the target client side. (#3468)
  • Fixed issue where NetworkVariables on a NetworkBehaviour could fail to synchronize changes if one has NetworkVariableUpdateTraits set and is dirty but is not ready to send. (#3466)
  • Fixed issue with the Distributed Authority connection sequence with scene management enabled where the ClientConnected event was fired before the client was synchronized. (#3459)
  • Fixed inconsistencies in the OnSceneEvent callback. (#3458)
  • Fixed issues with the NetworkBehaviour and NetworkVariable length safety checks. (#3405)
  • Fixed memory leaks when domain reload is disabled. (#3427)
  • Fixed issue where disabling the physics or physics2D package modules could result in a compilation error. (#3422)
  • Fixed an exception being thrown when unregistering a custom message handler from within the registered callback. (#3417)

1.13.0

01 May 09:06
Compare
Choose a tag to compare

[1.13.0] - 2025-04-30

Added

  • Added NetworkManager.OnPreShutdown which is called before the NetworkManager cleans up and shuts down. (#3358)
  • Added FastBufferReader(ArraySegment<byte> buffer, Allocator copyAllocator) constructor that uses the ArraySegment.Offset as the FastBufferReader offset and the ArraySegment.Count as the FastBufferReader length. (#3320)
  • Added FastBufferReader(ArraySegment<byte> buffer, Allocator copyAllocator, int length = -1) constructor that uses the ArraySegment.Offset as the FastBufferReader offset. (#3320)

Fixed

  • Fixed memory leaks when domain reload is disabled. (#3428)
  • Fixed issues with the NetworkBehaviour and NetworkVariable length safety checks. (#3415)
  • Fixed issue where during a NetworkObject's spawn if you instantiated, spawned, and parented another network prefab under the currently spawning NetworkObject the parenting message would not properly defer until the parent NetworkObject was spawned. (#3403)
  • Fixed issue where in-scene placed NetworkObjects could fail to synchronize its transform properly (especially without a NetworkTransform) if their parenting changes from the default when the scene is loaded and if the same scene remains loaded between network sessions while the parenting is completely different from the original hierarchy. (#3388)
  • Fixed an issue in UnityTransport where the transport would accept sends on invalid connections, leading to a useless memory allocation and confusing error message. (#3383)
  • Fixed issue where NetworkAnimator would log an error if there was no destination transition information. (#3384)
  • Fixed initial NetworkTransform spawn, ensure it uses world space. (#3361)
  • Fixed issue where AnticipatedNetworkVariable previous value returned by AnticipatedNetworkVariable.OnAuthoritativeValueChanged is updated correctly on the non-authoritative side. (#3322)

Changed

  • Changed the scene loading event serialization order for in-scene placed NetworkObjects to be based on their parent-child hierarchy. (#3388)

2.3.2

01 May 09:10
Compare
Choose a tag to compare

[2.3.2] - 2025-04-22

Fixed

  • Fixed issue where the authority instance of NetworkTransform could check for state updates more than one time in a frame if the frame rate is greater than the tick frequency. (#3413)
  • Fixed issue where the new interpolator types were blocking after the first consumption of a sequence of buffered state updates. (#3413)
  • Fixed issue where root level in-scene placed NetworkObjects would only allow the ownership permission to be no less than distributable or sessionowner. (#3407)

2.3.1

14 Apr 19:45
Compare
Choose a tag to compare

Fixed

  • Fixed issue where during a NetworkObject's spawn if you instantiated, spawned, and parented another network prefab under the currently spawning NetworkObject the parenting message would not properly defer until the parent NetworkObject was spawned. (#3401)

2.3.0

11 Apr 19:05
Compare
Choose a tag to compare

Added

  • Added NetworkManager.OnPreShutdown which is called before the NetworkManager cleans up and shuts down. (#3366)
  • Added Lerp interpolation type that still uses a lerp approach but uses the new buffer consumption logic. (#3355)
  • Added property to enable or disable lerp smoothing for position, rotation, and scale interpolators. (#3355)
  • Added NetworkTransform.InterpolationBufferTickOffset static property to provide users with a way to increase or decrease the time marker where interpolators will pull state update from the queue. (#3355)
  • Added interpolator types as an inspector view selection for position, rotation, and scale. (#3337)
  • Added a new smooth dampening interpolator type that provides a nice balance between precision and smoothing results. (#3337)
  • Added NetworkTimeSystem.TickLatency property that provides the average latency of a client. (#3337)
  • Added FastBufferReader(ArraySegment<byte> buffer, Allocator copyAllocator) constructor that uses the ArraySegment.Offset as the FastBufferReader offset and the ArraySegment.Count as the FastBufferReader length. (#3321)
  • Added FastBufferReader(ArraySegment<byte> buffer, Allocator copyAllocator, int length = -1) constructor that uses the ArraySegment.Offset as the FastBufferReader offset. (#3321)

Fixed

  • Fixed issue where in-scene placed NetworkObjects could fail to synchronize its transform properly (especially without a NetworkTransform) if their parenting changes from the default when the scene is loaded and if the same scene remains loaded between network sessions while the parenting is completely different from the original hierarchy. (#3387)
  • Fixed an issue in UnityTransport where the transport would accept sends on invalid connections, leading to a useless memory allocation and confusing error message. (#3382)
  • Fixed issue where the time delta that interpolators used would not be properly updated during multiple fixed update invocations within the same player loop frame. (#3355)
  • Fixed issue when using a distributed authority network topology and many clients attempt to connect simultaneously the session owner could max-out the maximum in-flight reliable messages allowed, start dropping packets, and some of the connecting clients would fail to fully synchronize. (#3350)
  • Fixed issue when using a distributed authority network topology and scene management was disabled clients would not be able to spawn any new network prefab instances until synchronization was complete. (#3350)
  • Fixed issue where an owner that changes ownership, when using a distributed authority network topology, could yield identical previous and current owner identifiers. This could also cause NetworkTransform to fail to change ownership which would leave the previous owner still subscribed to network tick events. (#3347)
  • Fixed issue where the MaximumInterpolationTime could not be modified from within the inspector view or runtime. (#3337)
  • Fixed ChangeOwnership changing ownership to clients that are not observers. This also happened with automated object distribution. (#3323)
  • Fixed issue where AnticipatedNetworkVariable previous value returned by AnticipatedNetworkVariable.OnAuthoritativeValueChanged is updated correctly on the non-authoritative side. (#3306)
  • Fixed OnClientConnectedCallback passing incorrect clientId when scene management is disabled. (#3312)
  • Fixed issue where the NetworkObject.Ownership custom editor did not take the default "Everything" flag into consideration. (#3305)
  • Fixed DestroyObject flow on non-authority game clients. (#3291)
  • Fixed exception being thrown when a GameObject with an associated NetworkTransform is disabled. (#3243)
  • Fixed issue where the scene migration synchronization table was not cleaned up if the GameObject of a NetworkObject is destroyed before it should have been. (#3230)
  • Fixed issue where the scene migration synchronization table was not cleaned up upon NetworkManager shutting down. (#3230)
  • Fixed NetworkObject.DeferDespawn to respect the DestroyGameObject parameter. (#3219)
  • Fixed issue where a NetworkObject with nested NetworkTransform components of varying authority modes was not being taken into consideration and would break both the initial NetworkTransform synchronization and fail to properly handle synchronized state updates of the nested NetworkTransform components. (#3209)
  • Fixed issue with distributing parented children that have the distributable and/or transferrable permissions set and have the same owner as the root parent, that has the distributable permission set, were not being distributed to the same client upon the owning client disconnecting when using a distributed authority network topology. (#3203)
  • Fixed issue where a spawned NetworkObject that was registered with a prefab handler and owned by a client would invoke destroy more than once on the host-server side if the client disconnected while the NetworkObject was still spawned. (#3200)
  • Fixed issue where NetworkVariableBase derived classes were not being re-initialized if the associated NetworkObject instance was not destroyed and re-spawned. (#3181)

Changed

  • Changed the scene loading event serialization order for in-scene placed NetworkObjects to be based on their parent-child hierarchy. (#3387)
  • Changed the original Lerp interpolation type to LegacyLerp. (#3355)
  • Changed BufferedLinearInterpolator<T>.Update(float deltaTime, NetworkTime serverTime) as being deprecated since this method is only used for internal testing purposes. (#3337)
  • Changed error thrown when attempting to build a dedicated server with Unity Transport that uses websockets to provide more useful information to the user. (#3336)
  • Changed root in-scene placed NetworkObject instances now will always have either the Distributable permission set unless the SessionOwner permission is set. (#3305)
  • Changed the DestroyObject message to reduce the serialized message size and remove the unnecessary message field. (#3304)
  • Changed the NetworkTimeSystem.Sync method to use half RTT to calculate the desired local time offset as opposed to the full RTT. (#3212)