Releases: Unity-Technologies/com.unity.netcode.gameobjects
Releases · Unity-Technologies/com.unity.netcode.gameobjects
2.4.4
1.13.1
[1.13.1] - 2025-07-07
Added
- Added documentation to package repository.
2.4.3
2.4.2
[2.4.2] - 2025-06-13
Fixed
- Fixed
NullReferenceException
onNetworkList
when used without a NetworkManager in scene. (#3503) - Fixed issue where
NetworkClient
could persist some settings if re-using the sameNetworkManager
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
[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 switchasmdef
references toUnity.Netcode.Runtime.Tests
. (#3444) - Changed: Migrated multiplayer metrics tests to Multiplayer Tools repository and removed the multiplayer tools test project. (#3444)
2.4.0
[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
andNetworkObject.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
NetworkVariable
s on aNetworkBehaviour
could fail to synchronize changes if one hasNetworkVariableUpdateTraits
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
andNetworkVariable
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
[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 theArraySegment.Offset
as theFastBufferReader
offset and theArraySegment.Count
as theFastBufferReader
length. (#3320) - Added
FastBufferReader(ArraySegment<byte> buffer, Allocator copyAllocator, int length = -1)
constructor that uses theArraySegment.Offset
as theFastBufferReader
offset. (#3320)
Fixed
- Fixed memory leaks when domain reload is disabled. (#3428)
- Fixed issues with the
NetworkBehaviour
andNetworkVariable
length safety checks. (#3415) - Fixed issue where during a
NetworkObject
's spawn if you instantiated, spawned, and parented another network prefab under the currently spawningNetworkObject
the parenting message would not properly defer until the parentNetworkObject
was spawned. (#3403) - Fixed issue where in-scene placed
NetworkObjects
could fail to synchronize its transform properly (especially without aNetworkTransform
) 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 byAnticipatedNetworkVariable.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
[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
2.3.0
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 theArraySegment.Offset
as theFastBufferReader
offset and theArraySegment.Count
as theFastBufferReader
length. (#3321) - Added
FastBufferReader(ArraySegment<byte> buffer, Allocator copyAllocator, int length = -1)
constructor that uses theArraySegment.Offset
as theFastBufferReader
offset. (#3321)
Fixed
- Fixed issue where in-scene placed
NetworkObjects
could fail to synchronize its transform properly (especially without aNetworkTransform
) 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 byAnticipatedNetworkVariable.OnAuthoritativeValueChanged
is updated correctly on the non-authoritative side. (#3306) - Fixed
OnClientConnectedCallback
passing incorrectclientId
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 associatedNetworkTransform
is disabled. (#3243) - Fixed issue where the scene migration synchronization table was not cleaned up if the
GameObject
of aNetworkObject
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 theDestroyGameObject
parameter. (#3219) - Fixed issue where a
NetworkObject
with nestedNetworkTransform
components of varying authority modes was not being taken into consideration and would break both the initialNetworkTransform
synchronization and fail to properly handle synchronized state updates of the nestedNetworkTransform
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 theNetworkObject
was still spawned. (#3200) - Fixed issue where
NetworkVariableBase
derived classes were not being re-initialized if the associatedNetworkObject
instance was not destroyed and re-spawned. (#3181)
Changed
- Changed the scene loading event serialization order for in-scene placed
NetworkObject
s to be based on their parent-child hierarchy. (#3387) - Changed the original
Lerp
interpolation type toLegacyLerp
. (#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 theDistributable
permission set unless theSessionOwner
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)