1.4.0
·
304 commits
to develop
since this release
[1.4.0] - 2023-04-10
Added
- Added a way to access the GlobalObjectIdHash via PrefabIdHash for use in the Connection Approval Callback. (#2437)
- Added
OnServerStartedandOnServerStoppedevents that will trigger only on the server (or host player) to notify that the server just started or is no longer active (#2420) - Added
OnClientStartedandOnClientStoppedevents that will trigger only on the client (or host player) to notify that the client just started or is no longer active (#2420) - Added
NetworkTransform.UseHalfFloatPrecisionproperty that, when enabled, will use half float values for position, rotation, and scale. This yields a 50% bandwidth savings a the cost of precision. (#2388) - Added
NetworkTransform.UseQuaternionSynchronizationproperty that, when enabled, will synchronize the entire quaternion. (#2388) - Added
NetworkTransform.UseQuaternionCompressionproperty that, when enabled, will use a smallest three implementation reducing a full quaternion synchronization update to the size of an unsigned integer. (#2388) - Added
NetworkTransform.SlerpPositionproperty that, when enabled along with interpolation being enabled, will interpolate usingVector3.Slerp. (#2388) - Added
BufferedLinearInterpolatorVector3that replaces the float version, is now used byNetworkTransform, and provides the ability to enable or disableSlerp. (#2388) - Added
HalfVector3used for scale when half float precision is enabled. (#2388) - Added
HalfVector4used for rotation when half float precision and quaternion synchronization is enabled. (#2388) - Added
HalfVector3DeltaPositionused for position when half float precision is enabled. This handles loss in position precision by updating only the delta position as opposed to the full position. (#2388) - Added
NetworkTransform.GetSpaceRelativePositionandNetworkTransform.GetSpaceRelativeRotationhelper methods to return the proper values depending upon whether local or world space. (#2388) - Added
NetworkTransform.OnAuthorityPushTransformStatevirtual method that is invoked just prior to sending theNetworkTransformStateto non-authoritative instances. This provides users with the ability to obtain more precise delta values for prediction related calculations. (#2388) - Added
NetworkTransform.OnNetworkTransformStateUpdatedvirtual method that is invoked just after the authoritativeNetworkTransformStateis applied. This provides users with the ability to obtain more precise delta values for prediction related calculations. (#2388) - Added
NetworkTransform.OnInitializevirtual method that is invoked after theNetworkTransformhas been initialized or re-initialized when ownership changes. This provides for a way to make adjustments whenNetworkTransformis initialized (i.e. resetting client prediction etc) (#2388) - Added
NetworkObject.SynchronizeTransformproperty (default is true) that provides users with another way to help with bandwidth optimizations where, when set to false, theNetworkObject's associated transform will not be included when spawning and/or synchronizing late joining players. (#2388) - Added
NetworkSceneManager.ActiveSceneSynchronizationEnabledproperty, disabled by default, that enables client synchronization of server-side active scene changes. (#2383) - Added
NetworkObject.ActiveSceneSynchronization, disabled by default, that will automatically migrate aNetworkObjectto a newly assigned active scene. (#2383) - Added
NetworkObject.SceneMigrationSynchronization, enabled by default, that will synchronize client(s) when aNetworkObjectis migrated into a new scene on the server side viaSceneManager.MoveGameObjectToScene. (#2383)
Changed
- Made sure the
CheckObjectVisibilitydelegate is checked and applied, uponNetworkShowattempt. Found while supporting (#2454), although this is not a fix for this (already fixed) issue. (#2463) - Changed
NetworkTransformauthority handles delta checks on each new network tick and no longer consumes processing cycles checking for deltas for all frames in-between ticks. (#2388) - Changed the
NetworkTransformStatestructure is now public and now has public methods that provide access to key properties of theNetworkTransformStatestructure. (#2388) - Changed
NetworkTransforminterpolation adjusts its interpolation "ticks ago" to be 2 ticks latent if it is owner authoritative and the instance is not the server or 1 tick latent if the instance is the server and/or is server authoritative. (#2388) - Updated
NetworkSceneManagerto migrate dynamically spawnedNetworkObjects withDestroyWithSceneset to false into the active scene if their current scene is unloaded. (#2383) - Updated the server to synchronize its local
NetworkSceneManager.ClientSynchronizationModeduring the initial client synchronization. (#2383)
Fixed
- Fixed issue where during client synchronization the synchronizing client could receive a ObjectSceneChanged message before the client-side NetworkObject instance had been instantiated and spawned. (#2502)
- Fixed issue where
NetworkAnimatorwas building client RPC parameters to exclude the host from sending itself messages but was not including it in the ClientRpc parameters. (#2492) - Fixed issue where
NetworkAnimatorwas not properly detecting and synchronizing cross fade initiated transitions. (#2481) - Fixed issue where
NetworkAnimatorwas not properly synchronizing animation state updates. (#2481) - Fixed float NetworkVariables not being rendered properly in the inspector of NetworkObjects. (#2441)
- Fixed an issue where Named Message Handlers could remove themselves causing an exception when the metrics tried to access the name of the message.(#2426)
- Fixed registry of public
NetworkVariables in derivedNetworkBehaviours (#2423) - Fixed issue where runtime association of
Animatorproperties toAnimationCurves would causeNetworkAnimatorto attempt to update those changes. (#2416) - Fixed issue where
NetworkAnimatorwould not check if its associatedAnimatorwas valid during serialization and would spam exceptions in the editor console. (#2416) - Fixed issue with a child's rotation rolling over when interpolation is enabled on a
NetworkTransform. Now using half precision or full quaternion synchronization will always update all axis. (#2388) - Fixed issue where
NetworkTransformwas not setting the teleport flag when theNetworkTransform.InLocalSpacevalue changed. This issue only impactedNetworkTransformwhen interpolation was enabled. (#2388) - Fixed issue when the
NetworkSceneManager.ClientSynchronizationModeisLoadSceneMode.Additiveand the server changes the currently active scene prior to a client connecting then upon a client connecting and being synchronized the NetworkSceneManager would clear its internal ScenePlacedObjects list that could already be populated. (#2383) - Fixed issue where a client would load duplicate scenes of already preloaded scenes during the initial client synchronization and
NetworkSceneManager.ClientSynchronizationModewas set toLoadSceneMode.Additive. (#2383)