Edit: Newer version here 🎉 Netcode for GameObjects v2.8.0 is now publicly available
Hang on to your netcode hats as this release includes a cornucopia of fixes and improvements! Universal RPCs (RpcAttribute) now provide you with the ability to apply invoke permissions as an RPC attribute parameter. Improvements with error messaging which includes more details on the reason for a disconnect. Unless specified by user script, all messages now use reliable fragmented sequenced delivery which is part of a continued effort to improve upon the NGO messaging pipeline and preserving order of operations. NetworkTransform and the BufferedLinearInterpolator both have been refactored to improve transform space transitions when SwitchTransformSpaceWhenParented is enabled. This version also includes some optimizations, fixes, and documentation updates.
Added
RpcInvokePermissionto control who has permission to invoke specific RPC methods. (#3731)- Added NetworkRigidbody documentation section. (#3664)
- Added new fields to the
SceneMapstruct when using Unity 6.3 or higher. These fields allow referencing scene handles via the newSceneHandlestruct. (#3734)
Changed
- Better error message when using generic IEquatable in a generic INetworkSerializable class and updated documentation with workaround. (#3739)
- The
NetworkManagerfunctionsGetTransportIdFromClientIdandGetClientIdFromTransportIdwill now returnulong.MaxValuewhen the clientId or transportId do not exist. (#3707) - Changed NetworkShow to send a message at the end of the frame and force a NetworkVariable synchronization prior to generating the CreateObjectMessage as opposed to waiting until the next network tick to synchronize the show with the update to NetworkVariables. (#3664)
- Changed NetworkTransform now synchronizes
NetworkTransform.SwitchTransformSpaceWhenParentedwhen it is updated by the motion model authority. (#3664) - Changed when NetworkObjects pending to be shown to clients can now occur on partial network ticks. If any pending NetworkObjects pending to be shown to clients happens to be ready on a new network tick they still are shown after network variable deltas have been processed. (#3664)
- Changed the default
NetworkDeliveryused by all messages is now reliable fragmented sequenced with the exception of named, unnamed, and any messages sent with a user specified network delivery type. This assures certain order of operations to be preserved when same call-stack changes are applied to a newly spawned, authority side, NetworkObject. (#3664) - Changed NetworkTransform documentation to better reflect the Teleport methods intended usage along with updates to NetworkObject and physics areas of the documentation. (#3664)
- The first session owner no longer sends two synchronization messages to the service. (#3563)
- Updated transport dependency of the package to 2.6.0 (#3736)
Deprecated
- Deprecated all
RequireOwnershipfields around the RPCs in favor of theRpcInvokePermission. (#3731) - On Unity 6.5 some
SceneMapfields that use anintto represent aSceneHandleare deprecated. (#3734)
Removed
- Removed usage of UNITY_UNET_PRESENT define (#3736)
Fixed
- Initialization errors with NetworkAnimator. (#3767)
- Multiple disconnect events from the same transport will no longer disconnect the host. (#3707)
- Fixed NetworkTransform state synchronization issue when
NetworkTransform.SwitchTransformSpaceWhenParentedis enabled and the associated NetworkObject is parented multiple times in a single frame or within a couple of frames. (#3664) - Fixed issue when spawning, parenting, and immediately re-parenting when
NetworkTransform.SwitchTransformSpaceWhenParentedis enabled. (#3664) - Fixed issue where the disconnect event and provided message was too generic to know why the disconnect occurred. (#3551)
- Exception when the network prefab list in the network manager has uninitialized elements. (#3739)