1.12.0
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.
[1.12.0] - 2024-11-19
Added
- Added
UnityTransport.GetEndpoint
method to provide a way to obtainNetworkEndpoint
information of a connection via client identifier. (#3131) - Added a static
NetworkManager.OnInstantiated
event notification to be able to track when a newNetworkManager
instance has been instantiated. (#3089) - Added a static
NetworkManager.OnDestroying
event notification to be able to track when an existingNetworkManager
instance is being destroyed. (#3089) - Added message size validation to named and unnamed message sending functions for better error messages. (#3043)
- Added "Check for NetworkObject Component" property to the Multiplayer->Netcode for GameObjects project settings. When disabled, this will bypass the in-editor
NetworkObject
check onNetworkBehaviour
components. (#3034)
Fixed
- Fixed issue where
NetworkList
properties on in-scene placedNetworkObject
s could cause small memory leaks when entering playmode. (#3148) - Fixed issue where a newly synchronizing client would be synchronized with the current
NetworkVariable
values always which could cause issues with collections if there were any pending state updates. Now, when initially synchronizing a client, if aNetworkVariable
has a pending state update it will serialize the previously known value(s) to the synchronizing client so when the pending updates are sent they aren't duplicate values on the newly connected client side. (#3126) - Fixed issue where changing ownership would mark every
NetworkVariable
dirty. Now, it will only mark anyNetworkVariable
with owner read permissions as dirty and will send/flush any pending updates to all clients prior to sending the change in ownership message. (#3126) - Fixed issue with
NetworkVariable
collections where transferring ownership to another client would not update the new owner's previous value to the most current value which could cause the last/previous added value to be detected as a change when adding or removing an entry (as long as the entry removed was not the last/previously added value). (#3126) - Fixed issue where a client (or server) with no write permissions for a
NetworkVariable
using a standard .NET collection type could still modify the collection which could cause various issues depending upon the modification and collection type. (#3126) - 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. (#3124) - Fixed issue with the in-scene network prefab instance update menu tool where it was not properly updating scenes when invoked on the root prefab instance. (#3084)
- Fixed issue where
NetworkAnimator
would send updates to non-observer clients. (#3058) - Fixed issue where an exception could occur when receiving a universal RPC for a
NetworkObject
that has been despawned. (#3055) - Fixed issue where setting a prefab hash value during connection approval but not having a player prefab assigned could cause an exception when spawning a player. (#3046)
- Fixed issue where collections v2.2.x was not supported when using UTP v2.2.x within Unity v2022.3. (#3033)
- Fixed issue where the
NetworkSpawnManager.HandleNetworkObjectShow
could throw an exception if one of theNetworkObject
components to show was destroyed during the same frame. (#3029) - Fixed issue where the
NetworkManagerHelper
was continuing to check for hierarchy changes when in play mode. (#3027)
Changed
- Changed
NetworkVariableDeltaMessage
so the server now forwards delta state updates (owner write permission based from a client) to other clients immediately as opposed to keeping aNetworkVariable
orNetworkList
dirty and processing them at the end of the frame or potentially on the next network tick. (#3126) - The Debug Simulator section of the Unity Transport component will now be hidden if Unity Transport 2.0 or later is installed. It was already non-functional in that situation and users should instead use the more featureful Network Simulator tool from the Multiplayer Tools package. (#3120)