🎉 Netcode for GameObjects v2.5.0 is now publicly available!

:tada: Package Link :package:

Added

  • Added AsNativeArray() read‑only accessor to NetworkList<T> (#3567)
  • Added serializer for Pose (#3546)
  • Added AttachableBehaviour helper component to provide an alternate approach to parenting items without using the NetworkObject parenting. (#3518)
  • Added AttachableNode helper component that is used by AttachableBehaviour as the target node for parenting. (#3518)
  • Added ComponentController helper component that can be used to synchronize the enabling and disabling of components and can be used in conjunction with AttachableBehaviour. (#3518)
  • Added NetworkBehaviour.OnNetworkPreDespawn that is invoked before running through the despawn sequence for the NetworkObject and all NetworkBehaviour children of the NetworkObject being despawned. (#3518)
  • Added methods GetDefaultNetworkSettings and GetDefaultPipelineConfigurations to UnityTransport. These can be used to retrieve the default settings and pipeline stages that are used by UnityTransport. This is useful when providing a custom driver constructor through UnityTransport.s_DriverConstructor, since it allows reusing or tuning the existing configuration instead of trying to recreate it. This means a transport with a custom driver can now easily benefit from most of the features of UnityTransport, like integration with the Network Simulator and Network Profiler from the multiplayer tools package. (#3501)
  • Added mappings between ClientId and TransportId. (#3516)
  • Added NetworkPrefabInstanceHandlerWithData<T>, a variant of INetworkPrefabInstanceHandler that provides access to custom instantiation data directly within the Instantiate() method. (#3497)

Fixed

  • Removed allocation to the heap in NetworkBehaviourUpdate. (#3573)
  • Fixed issue where NetworkConfig.ConnectionData could cause the ConnectionRequestMessage to exceed the transport’s MTU size and would result in a buffer overflow error. (#3564)
  • Fixed regression issue in v2.x where NetworkObject.GetNetworkBehaviourAtOrderIndex was converted from public to internal. (#3541)
  • Fixed ensuring OnValueChanged callback is still triggered on the authority when a collection changes and then reverts to the previous value in the same frame. (#3539)
  • Fixed synchronizing the destroyGameObject parameter to clients for InScenePlaced network objects. (#3514)
  • Fixed distributed authority related issue where enabling the NetworkObject.DestroyWithScene would cause errors when a destroying non-authority instances due to loading (single mode) or unloading scene events. (#3500)
  • Fixed an issue where UnityTransport would not accept single words as valid hostnames (notably “localhost”). (#3591)
  • Fixed issue where viewing a NetworkBehaviour with one or more NetworkVariable fields could throw an exception if running a distributed authority network topology with a local (DAHost) host and viewed on the host when the host is not the authority of the associated NetworkObject. (#3578)
  • Fixed issue when using a distributed authority network topology and viewing a NetworkBehaviour with one or more NetworkVariable fields in the inspector view would not show editable fields. (#3578)
  • Fixed issue with unnecessary internal GC Allocations when using the IReadOnlyList NetworkManager.ConnectedClientsIds within a foreach statement by either replacing with a for loop or directly referencing the NetworkConnectionManager.ConnectedClientIds. (#3527)

Changed

  • Marked UnityTransport.ConnectionAddressData.ServerEndPoint as obsolete. It can’t work when using hostnames as the server address, and its functionality can easily be replicated using NetworkEndpoint.Parse. (#3591)
  • Optimized NetworkList<T> indexer setter to skip operations when the new value equals the existing value, improving performance by avoiding unnecessary list events and network synchronization. (#3587)
6 Likes

:tada: Netcode for GameObjects v2.5.1 is now available with the following updates:

Added

  • Added a warning when NetworkManager.NetworkConfig.ConnectionApproval is set in a distributed authority context. (#3658)

Fixed

  • Fixed issue where a client, under above average latency and packet loss conditions, could receive multiple NetworkTransform state updates in one frame and when processing the state updates only the last state update would be applied to the transform if interpolation was disabled. (#3614)
6 Likes