The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Additional documentation and release notes are available at Multiplayer Documentation.
[2.2.0] - 2024-12-12
Added
- Added
NetworkObject.OwnershipStatus.SessionOwner
to allow Network Objects to be distributable and only owned by the Session Owner. This flag will override all otherOwnershipStatus
flags. (#3175) - Added
UnityTransport.GetEndpoint
method to provide a way to obtainNetworkEndpoint
information of a connection via client identifier. (#3130) - Added
NetworkTransport.OnEarlyUpdate
andNetworkTransport.OnPostLateUpdate
methods to provide more control over handling transport related events at the start and end of each frame. (#3113)
Fixed
- Fixed issue where the server, host, or session owner would not populate the in-scene place
NetworkObject
table if the scene was loaded prior to starting theNetworkManager
. (#3177) - Fixed issue where the
NetworkObjectIdHash
value could be incorrect when entering play mode while still in prefab edit mode with pending changes and using MPPM. (#3162) - Fixed issue where a sever only
NetworkManager
instance would spawn the actualNetworkPrefab
'sGameObject
as opposed to creating an instance of it. (#3160) - Fixed issue where only the session owner (as opposed to all clients) would handle spawning prefab overrides properly when using a distributed authority network topology. (#3160)
- Fixed issue where an exception was thrown when calling
NetworkManager.Shutdown
after callingUnityTransport.Shutdown
. (#3118) - Fixed issue where
NetworkList
properties on in-scene placedNetworkObject
s could cause small memory leaks when entering playmode. (#3147) - Fixed in-scene
NertworkObject
synchronization issue when loading a scene with currently connected clients connected to a session created by aNetworkManager
started as a server (i.e. not as a host). (#3133) - Fixed issue where a
NetworkManager
started as a server would not add itself as an observer to in-scene placedNetworkObject
s instantiated and spawned by a scene loading event. (#3133) - Fixed issue where spawning a player using
NetworkObject.InstantiateAndSpawn
orNetworkSpawnManager.InstantiateAndSpawn
would not update theNetworkSpawnManager.PlayerObjects
or assign the newly spawned player to theNetworkClient.PlayerObject
. (#3122) - Fixed issue where queued UnitTransport (NetworkTransport) message batches were being sent on the next frame. They are now sent at the end of the frame during
PostLateUpdate
. (#3113) - Fixed issue where
NotOwnerRpcTarget
orOwnerRpcTarget
were not using their replacementsNotAuthorityRpcTarget
andAuthorityRpcTarget
which would invoke a warning. (#3111) - Fixed issue where client is removed as an observer from spawned objects when their player instance is despawned. (#3110)
- Fixed issue where
NetworkAnimator
would statically allocate write buffer space forAnimator
parameters that could cause a write error if the number of parameters exceeded the space allocated. (#3108)
Changed
- In-scene placed
NetworkObject
s have been made distributable when balancing object distribution after a connection event. (#3175) - Optimised
NetworkVariable
andNetworkTransform
related packets when in Distributed Authority mode. - The Debug Simulator section of the Unity Transport component was removed. This section was not functional anymore and users are now recommended to use the more featureful Network Simulator tool from the Multiplayer Tools package instead. (#3121)