From 4678a38e363152c5ce9d1058bcb4627d093d293f Mon Sep 17 00:00:00 2001 From: Larah Armstrong <29762984+armstrongl@users.noreply.github.com> Date: Thu, 20 Oct 2022 12:44:55 -0500 Subject: [PATCH 1/2] Update NGO changelog to 1.1.0 --- releases/netcode/1-0-0.md | 107 +++++++++++++++++++++++++++----------- 1 file changed, 78 insertions(+), 29 deletions(-) diff --git a/releases/netcode/1-0-0.md b/releases/netcode/1-0-0.md index a107d56ab..1c246d2b1 100644 --- a/releases/netcode/1-0-0.md +++ b/releases/netcode/1-0-0.md @@ -14,50 +14,99 @@ This release contains features, updates, bug fixes, and refactoring for the Net | Netcode for GameObjects | 1.0.0| Release | June 27, 2022 | 2020.3 and later | | Netcode for GameObjects | 1.0.1| Release | August 25, 2022 | 2020.3 and later | | Netcode for GameObjects | 1.0.2| Release | September 13, 2022 | 2020.3 and later | +| Netcode for GameObjects | 1.1.0| Release | October 10, 2022 | 2020.3 and later | :::note -Netcode for GameObjects supports Windows, MacOS, Ubuntu 20.4 LTS and Ubuntu 18.04 LTS versions of Unity Editor and Player +Netcode for GameObjects supports Windows, MacOS, Ubuntu 20.4 LTS, and Ubuntu 18.04 LTS versions of Unity Editor and Player ::: -## [1.0.2] - 2022-09-13 +## [1.1.0] - 2022-10-20 -### Fixed +### Added -* Fixed issue where `NetworkTransform` was not honoring the `InLocalSpace` property on the authority side during `OnNetworkSpawn`. ([#2170](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2170)) -* Fixed issue where `NetworkTransform` was not ending extrapolation for the previous state causing non-authoritative instances to become out of sync. ([#2170](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2170)) -* Fixed issue where `NetworkTransform` was not continuing to interpolate for the remainder of the associated tick period. ([#2170](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2170)) -* Fixed issue during `NetworkTransform.OnNetworkSpawn` for non-authoritative instances where it was initializing interpolators with the replicated network state, which now only contains the transform deltas that occurred during a network tick and not the entire transform state. ([#2170](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2170)) +* Added `NetworkManager.IsApproved` flag that is set to `true` if a client is approved. (#2261) +* `UnityTransport` now provides a way to set the [Relay server](https://docs.unity.com/relay/relay-servers.html) data directly from the `RelayServerData` structure (provided by the Unity Transport package) through its `SetRelayServerData` method. This allows you to use the new APIs in UTP 1.3 that simplify integrating the [Relay SDK](https://docs.unity.com/relay/SDK/sdk.html). (#2235) +* Added IPv6 support for direct connections when using `UnityTransport`. (#2232) +* Added WebSocket support when using UTP 2.0 with the `UseWebSockets` property in the `UnityTransport` component of the `NetworkManager`. This allows you to pick WebSockets for communication. If you’re building for WebGL, NGO uses WebSockets automatically. (#2201) +* Added position, rotation, and scale to the `ParentSyncMessage`. This allows users to specify the final values on the server side when invoking `OnNetworkObjectParentChanged` just before creating the message (when the `Transform` values are applied to the message). (#2146) +* Added the `NetworkObject.TryRemoveParent` convenience method. You can now use this method instead of casting null to `GameObject` or `NetworkObject`. (#2146) -## [1.0.1] - 2022-08-25 +### Changed -* Changed version to 1.0.1. ([#2131](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2131)) -* Updated dependency on `com.unity.transport` to 1.2.0. ([#2129](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2129)) -* When using `UnityTransport`, _reliable_ payloads can now exceed the configured `Max Payload Size`. Unreliable payloads remain bounded by this setting. ([#2081](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2081)) -* Added performance improvements for cases with many `NetworkObjects` by not iterating over all unchanged `NetworkObjects`. +* Updated `UnityTransport` dependency on `com.unity.transport` to 1.3.0. (#2231) +* Made the send queues of `UnityTransport` dynamically sized. This means that you shouldn't need to tweak the **Max Send Queue Size** value. In fact, this field is no longer available in the Inspector (and won’t be serialized anymore). While not recommended in most cases, you can still set the value manually using the `MaxSendQueueSize` property for special cases, such as limiting the amount of memory used by the send queues in very constrained environments. (#2212) +* As a consequence of the above change, the `UnityTransport.InitialMaxSendQueueSize` field is now deprecated. There is no default value anymore since send queues are dynamically-sized. (#2212) +* Made the debug simulator in `UnityTransport` non-deterministic. Before this change, its random number generator was seeded with a constant value, which lead to the same pattern of packet drops, delays, and jitter in every run. (#2196) +* Added support for managed `INetworkSerializable` types to `NetworkVariable<>`. It also supports other managed types with serialization and deserialization delegates registered to `UserNetworkVariableSerialization<T>.WriteValue` and `UserNetworkVariableSerialization<T>.ReadValue` (#2219) +* `NetworkVariable<>` and `BufferSerializer<BufferSerializerReader>` now deserialize `INetworkSerializable` types in-place, rather than constructing new ones. (#2219) + +### Fixed +* Fixed `NetworkManager.ApprovalTimeout` so that it will not timeout due to slower client synchronization times. It now uses the added `NetworkManager.IsApproved` flag to determine if the client has been approved or not. (#2261) +* Fixed an issue caused by changing ownership of objects hidden from some clients. (#2242) +* Fixed an issue where an in-scene placed NetworkObject would not invoke `NetworkBehaviour.OnNetworkSpawn` if the GameObject was disabled when it despawned. (#2239) +* Fixed an issue where clients were not rebuilding the `NetworkConfig` hash value for each unique connection request. (#2226) +* Fixed an issue where player objects were not taking the `DontDestroyWithOwner` property into consideration when a client disconnected. (#2225) +* Fixed an issue where `SceneEventProgress` would not complete if a client joins late while it is still in progress. (#2222) +* Fixed an issue where `SceneEventProgress` would not complete if a client disconnects. (#2222) +* Fixed issues with detecting if a `SceneEventProgress` has timed out. (#2222) +* Fixed issue #1924 where `UnityTransport` would fail to restart after a first failure (even if what caused the initial failure was addressed). (#2220) +* Fixed an issue where `NetworkTransform.SetStateServerRpc` and `NetworkTransform.SetStateClientRpc` were not honoring local vs world space settings when applying the position and rotation. (#2203) +* Fixed ILPP `TypeLoadException` on WebGL on MacOS Editor and potentially other platforms. (#2199) +* Fixed an issue with implicit conversion of `NetworkObjectReference` to GameObject. It now returns null instead of throwing an exception if the referenced object could not be found (that is, it was already despawned). (#2158) +* Fixed a warning resulting from a stray `NetworkAnimator.meta` file. (#2153) +* Fixed an issue with Connection Approval Timeout not working client side. (#2164) +* Fixed an issue where the `WorldPositionStays` parenting parameter was not synchronizing with clients. (#2146) +* Fixed an issue where parented in-scene placed `NetworkObject`s would fail for late joining clients. (#2146) +* Fixed an issue where the scale was not being synchronized, which caused issues with nested parenting and scale when `WorldPositionStays` was true. (#2146) +* Fixed an issue with `NetworkTransform.ApplyTransformToNetworkStateWithInfo` where it was not honoring axis sync settings when `NetworkTransformState.IsTeleportingNextFrame` was true. (#2146) +* Fixed an issue with `NetworkTransform.TryCommitTransformToServer` where it was not honoring the `InLocalSpace` setting. (#2146) +* Fixed an issue with `ClientRpcs` always reporting in the profiler view as going to all clients, even when limited to a subset of clients by `ClientRpcParams`. (#2144) +* Fixed an issue with RPC code generation (codegen) failing to choose the correct extension methods for `FastBufferReader` and `FastBufferWriter` when the parameters were a generic type (that is, `List`) and extensions for multiple instantiations of that type have been defined (that is, `List` and `List`). (#2142) +* Fixed the issue where running a server (not a host) causes the second player to not receive updates (unless a third player joined). (#2127) +* Fixed an issue where late-joining client transition synchronization could fail when more than one transition occurred. (#2127) +* Fixed an issue that was throwing an exception in `OnNetworkUpdate`, causing other `OnNetworkUpdate` calls to not be executed. (#1739) +* Fixed a synchronization issue that occurs when `Time.timeScale` is set to 0. This changes the timing update to use unscaled delta-time. Now network update rates are independent of the local time scale. (#2171) +* Fixed an issue where not all `NetworkVariables` were sent to all clients when a client connects to a server. (#1987) +* Fixed an issue with `IsOwner`/`IsOwnedByServer` being wrong on the server after calling `RemoveOwnership`. (#2211) + +## [1.0.2] - 2022-09-13 ### Fixed +* Fixed an issue where `NetworkTransform` was not honoring the `InLocalSpace` property on the authority side during `OnNetworkSpawn`. (#2170) +* Fixed an issue where `NetworkTransform` was not ending extrapolation for the previous state causing non-authoritative instances to become out of sync. (#2170) +* Fixed an issue where `NetworkTransform` was not continuing to interpolate for the remainder of the associated tick period. (#2170) +* Fixed an issue that occurred during `NetworkTransform.OnNetworkSpawn` for non-authoritative instances where it was initializing interpolators with the replicated network state, which now only contains the transform deltas that occurred during a network tick and not the entire transform state. (#2170) + +## [1.0.1] - 2022-08-25 + +### Changed +* Changed version to 1.0.1. (#2131) +* Updated dependency on `com.unity.transport` to 1.2.0. (#2129) +* When using `UnityTransport`, _reliable_ payloads can now exceed the configured `Max Payload Size`. Unreliable payloads remain bounded by this setting. (#2081) +* Added performance improvements for cases with many `NetworkObjects` by not iterating over all unchanged `NetworkObjects`. -* Fixed an issue where not sending all `NetworkVariables` to all clients when a client connects to a server. ([#1987](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/issues/1987)) -* Fixed an issue where reading/writing more than 8 bits at a time with BitReader/BitWriter would write/read from the wrong place, returning an incorrect result. ([#2130](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2130)) -* Fixed an issue with the internal `NetworkTransformState.m_Bitset` flag not getting cleared upon the next tick advancement. ([#2110](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2110)) -* Fixed an interpolation issue with `NetworkTransform.Teleport`. ([#2110](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2110)) -* Fixed an issue where the authoritative side was interpolating its transform. ([#2110](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2110)) -* Fixed an issue where Owner-written `NetworkVariable` infinitely writes to themselves. ([#2109](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/issues/2109)) -* Fixed an issue where `NetworkList` showed when inserting at the end of a `NetworkList`. ([#2099](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2099)) -* Fixed an issue where a client owner of a `NetworkVariable` with both owners' read and write permissions would not update the server side when changed. ([#2097](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2097)) -* Fixed an issue where attempting to spawn a parent `GameObject` with a `NetworkObject` component attached (that has one or more inactive child `GameObjects`), that are inactive in the hierarchy. Now, with `NetworkBehaviour` components it will no longer attempt to spawn the associated `NetworkBehaviour`(s) or invoke ownership changed notifications but will log a warning message. ([#2096](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2096)) -* Fixed an issue where destroying a `NetworkBehaviour` would not deregister it from the parent `NetworkObject`, leading to exceptions when the parent was later destroyed. ([#2091](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2091)) -* Fixed an issue where `NetworkObject.NetworkHide` was despawning and destroying, as opposed to only despawning, in-scene placed `NetworkObjects`. ([#2086](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2086)) -* Fixed an issue where `NetworkAnimator` synchronized transitions twice due to detecting the change in animation state once a trigger starts a transition. ([#2084](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2084)) -* Fixed an issue where `NetworkAnimator` would not synchronize a looping animation for late joining clients if it was at the very end of its loop. ([#2076](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2076)) -* Fixed issue where `NetworkAnimator` was not removing its subscription from `OnClientConnectedCallback` when despawned during the shutdown sequence. ([#2074](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2074)) -* Fixed an issue where `IsServer` and `IsClient` are set to false before the object despawns during the shutdown sequence. ([#2074](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2074)) -* Fixed an issue with the `NetworkList Value` event on the server. `PreviousValue` is now set correctly when a new value is set through the property setter. ([#2067](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2067)) -* Fixed an issue where `NetworkLists` is not populating on the client. `NetworkList`. It now uses the most recent list instead of the list at the end of the previous frame when sending full updates to a dynamically spawned `NetworkObject`. The difference in behavior is required because scene management spawns those objects at a different time in the frame, relative to updates. ([#2062](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/issues/2062)) +### Fixed +* Fixed an issue where not sending all `NetworkVariables` to all clients when a client connects to a server. (#1987) +* Fixed an issue where reading/writing more than 8 bits at a time with BitReader/BitWriter would write/read from the wrong place, returning an incorrect result. (#2130) +* Fixed an issue with the internal `NetworkTransformState.m_Bitset` flag not getting cleared upon the next tick advancement. (#2110) +* Fixed an interpolation issue with `NetworkTransform.Teleport`. (#2110) +* Fixed an issue where the authoritative side was interpolating its transform. (#2110) +* Fixed an issue where Owner-written `NetworkVariable` infinitely writes to themselves. (#2109) +* Fixed an issue where `NetworkList` showed when inserting at the end of a `NetworkList`. (#2099) +* Fixed an issue where a client owner of a `NetworkVariable` with both owners' read and write permissions would not update the server side when changed. (#2097) +* Fixed an issue where attempting to spawn a parent `GameObject` with a `NetworkObject` component attached (that has one or more inactive child `GameObjects`), that are inactive in the hierarchy. Now, with `NetworkBehaviour` components it will no longer attempt to spawn the associated `NetworkBehaviour`(s) or invoke ownership changed notifications but will log a warning message. (#2096) +* Fixed an issue where destroying a `NetworkBehaviour` would not deregister it from the parent `NetworkObject`, leading to exceptions when the parent was later destroyed. (#2091) +* Fixed an issue where `NetworkObject.NetworkHide` was despawning and destroying, as opposed to only despawning, in-scene placed `NetworkObjects`. (#2086) +* Fixed an issue where `NetworkAnimator` synchronized transitions twice due to detecting the change in animation state once a trigger starts a transition. (#2084) +* Fixed an issue where `NetworkAnimator` would not synchronize a looping animation for late joining clients if it was at the very end of its loop. (#2076) +* Fixed an issue where `NetworkAnimator` was not removing its subscription from `OnClientConnectedCallback` when despawned during the shutdown sequence. (#2074) +* Fixed an issue where `IsServer` and `IsClient` are set to false before the object despawns during the shutdown sequence. (#2074) +* Fixed an issue with the `NetworkList Value` event on the server. `PreviousValue` is now set correctly when a new value is set through the property setter. (#2067) +* Fixed an issue where `NetworkLists` is not populating on the client. `NetworkList`. It now uses the most recent list instead of the list at the end of the previous frame when sending full updates to a dynamically spawned `NetworkObject`. The difference in behavior is required because scene management spawns those objects at a different time in the frame, relative to updates. (#2062) ## [1.0.0] - 2022-06-27 From 82e20b53d81044fe4350815f8957c163434d8359 Mon Sep 17 00:00:00 2001 From: Larah Armstrong <29762984+armstrongl@users.noreply.github.com> Date: Thu, 20 Oct 2022 13:33:04 -0500 Subject: [PATCH 2/2] Add PR and issue links --- releases/netcode/1-0-0.md | 150 +++++++++++++++++++------------------- 1 file changed, 74 insertions(+), 76 deletions(-) diff --git a/releases/netcode/1-0-0.md b/releases/netcode/1-0-0.md index 1c246d2b1..a85116ce1 100644 --- a/releases/netcode/1-0-0.md +++ b/releases/netcode/1-0-0.md @@ -20,93 +20,91 @@ This release contains features, updates, bug fixes, and refactoring for the Net Netcode for GameObjects supports Windows, MacOS, Ubuntu 20.4 LTS, and Ubuntu 18.04 LTS versions of Unity Editor and Player ::: -## [1.1.0] - 2022-10-20 +## NGO [1.1.0] - 2022-10-20 ### Added -* Added `NetworkManager.IsApproved` flag that is set to `true` if a client is approved. (#2261) -* `UnityTransport` now provides a way to set the [Relay server](https://docs.unity.com/relay/relay-servers.html) data directly from the `RelayServerData` structure (provided by the Unity Transport package) through its `SetRelayServerData` method. This allows you to use the new APIs in UTP 1.3 that simplify integrating the [Relay SDK](https://docs.unity.com/relay/SDK/sdk.html). (#2235) -* Added IPv6 support for direct connections when using `UnityTransport`. (#2232) -* Added WebSocket support when using UTP 2.0 with the `UseWebSockets` property in the `UnityTransport` component of the `NetworkManager`. This allows you to pick WebSockets for communication. If you’re building for WebGL, NGO uses WebSockets automatically. (#2201) -* Added position, rotation, and scale to the `ParentSyncMessage`. This allows users to specify the final values on the server side when invoking `OnNetworkObjectParentChanged` just before creating the message (when the `Transform` values are applied to the message). (#2146) -* Added the `NetworkObject.TryRemoveParent` convenience method. You can now use this method instead of casting null to `GameObject` or `NetworkObject`. (#2146) +* Added `NetworkManager.IsApproved` flag that is set to `true` if a client is approved. ([#2261](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2261)) +* `UnityTransport` now provides a way to set the [Relay server](https://docs.unity.com/relay/relay-servers.html) data directly from the `RelayServerData` structure (provided by the Unity Transport package) through its `SetRelayServerData` method. This allows you to use the new APIs in UTP 1.3 that simplify integrating the [Relay SDK](https://docs.unity.com/relay/SDK/sdk.html). ([#2235](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2235)) +* Added IPv6 support for direct connections when using `UnityTransport`. ([#2232](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2232)) +* Added WebSocket support when using UTP 2.0 with the `UseWebSockets` property in the `UnityTransport` component of the `NetworkManager`. This allows you to pick WebSockets for communication. If you’re building for WebGL, NGO uses WebSockets automatically. ([#2201](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2201)) +* Added position, rotation, and scale to the `ParentSyncMessage`. This allows users to specify the final values on the server side when invoking `OnNetworkObjectParentChanged` just before creating the message (when the `Transform` values are applied to the message). ([#2146](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2146)) +* Added the `NetworkObject.TryRemoveParent` convenience method. You can now use this method instead of casting null to `GameObject` or `NetworkObject`. ([#2146](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2146)) ### Changed -* Updated `UnityTransport` dependency on `com.unity.transport` to 1.3.0. (#2231) -* Made the send queues of `UnityTransport` dynamically sized. This means that you shouldn't need to tweak the **Max Send Queue Size** value. In fact, this field is no longer available in the Inspector (and won’t be serialized anymore). While not recommended in most cases, you can still set the value manually using the `MaxSendQueueSize` property for special cases, such as limiting the amount of memory used by the send queues in very constrained environments. (#2212) -* As a consequence of the above change, the `UnityTransport.InitialMaxSendQueueSize` field is now deprecated. There is no default value anymore since send queues are dynamically-sized. (#2212) -* Made the debug simulator in `UnityTransport` non-deterministic. Before this change, its random number generator was seeded with a constant value, which lead to the same pattern of packet drops, delays, and jitter in every run. (#2196) -* Added support for managed `INetworkSerializable` types to `NetworkVariable<>`. It also supports other managed types with serialization and deserialization delegates registered to `UserNetworkVariableSerialization<T>.WriteValue` and `UserNetworkVariableSerialization<T>.ReadValue` (#2219) -* `NetworkVariable<>` and `BufferSerializer<BufferSerializerReader>` now deserialize `INetworkSerializable` types in-place, rather than constructing new ones. (#2219) +* Updated `UnityTransport` dependency on `com.unity.transport` to 1.3.0. ([#2231](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2231)) +* Made the send queues of `UnityTransport` dynamically sized. This means that you shouldn't need to tweak the **Max Send Queue Size** value. In fact, this field is no longer available in the Inspector (and won’t be serialized anymore). While not recommended in most cases, you can still set the value manually using the `MaxSendQueueSize` property for special cases, such as limiting the amount of memory used by the send queues in very constrained environments. ([#2212](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2212)) +* As a consequence of the above change, the `UnityTransport.InitialMaxSendQueueSize` field is now deprecated. There is no default value anymore since send queues are dynamically-sized. ([#2212](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2212)) +* Made the debug simulator in `UnityTransport` non-deterministic. Before this change, its random number generator was seeded with a constant value, which lead to the same pattern of packet drops, delays, and jitter in every run. ([#2196](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2196)) +* Added support for managed `INetworkSerializable` types to `NetworkVariable<>`. It also supports other managed types with serialization and deserialization delegates registered to `UserNetworkVariableSerialization<T>.WriteValue` and `UserNetworkVariableSerialization<T>.ReadValue` ([#2219](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2219)) +* `NetworkVariable<>` and `BufferSerializer<BufferSerializerReader>` now deserialize `INetworkSerializable` types in-place, rather than constructing new ones. ([#2219](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2219)) ### Fixed -* Fixed `NetworkManager.ApprovalTimeout` so that it will not timeout due to slower client synchronization times. It now uses the added `NetworkManager.IsApproved` flag to determine if the client has been approved or not. (#2261) -* Fixed an issue caused by changing ownership of objects hidden from some clients. (#2242) -* Fixed an issue where an in-scene placed NetworkObject would not invoke `NetworkBehaviour.OnNetworkSpawn` if the GameObject was disabled when it despawned. (#2239) -* Fixed an issue where clients were not rebuilding the `NetworkConfig` hash value for each unique connection request. (#2226) -* Fixed an issue where player objects were not taking the `DontDestroyWithOwner` property into consideration when a client disconnected. (#2225) -* Fixed an issue where `SceneEventProgress` would not complete if a client joins late while it is still in progress. (#2222) -* Fixed an issue where `SceneEventProgress` would not complete if a client disconnects. (#2222) -* Fixed issues with detecting if a `SceneEventProgress` has timed out. (#2222) -* Fixed issue #1924 where `UnityTransport` would fail to restart after a first failure (even if what caused the initial failure was addressed). (#2220) -* Fixed an issue where `NetworkTransform.SetStateServerRpc` and `NetworkTransform.SetStateClientRpc` were not honoring local vs world space settings when applying the position and rotation. (#2203) -* Fixed ILPP `TypeLoadException` on WebGL on MacOS Editor and potentially other platforms. (#2199) -* Fixed an issue with implicit conversion of `NetworkObjectReference` to GameObject. It now returns null instead of throwing an exception if the referenced object could not be found (that is, it was already despawned). (#2158) -* Fixed a warning resulting from a stray `NetworkAnimator.meta` file. (#2153) -* Fixed an issue with Connection Approval Timeout not working client side. (#2164) -* Fixed an issue where the `WorldPositionStays` parenting parameter was not synchronizing with clients. (#2146) -* Fixed an issue where parented in-scene placed `NetworkObject`s would fail for late joining clients. (#2146) -* Fixed an issue where the scale was not being synchronized, which caused issues with nested parenting and scale when `WorldPositionStays` was true. (#2146) -* Fixed an issue with `NetworkTransform.ApplyTransformToNetworkStateWithInfo` where it was not honoring axis sync settings when `NetworkTransformState.IsTeleportingNextFrame` was true. (#2146) -* Fixed an issue with `NetworkTransform.TryCommitTransformToServer` where it was not honoring the `InLocalSpace` setting. (#2146) -* Fixed an issue with `ClientRpcs` always reporting in the profiler view as going to all clients, even when limited to a subset of clients by `ClientRpcParams`. (#2144) -* Fixed an issue with RPC code generation (codegen) failing to choose the correct extension methods for `FastBufferReader` and `FastBufferWriter` when the parameters were a generic type (that is, `List`) and extensions for multiple instantiations of that type have been defined (that is, `List` and `List`). (#2142) -* Fixed the issue where running a server (not a host) causes the second player to not receive updates (unless a third player joined). (#2127) -* Fixed an issue where late-joining client transition synchronization could fail when more than one transition occurred. (#2127) -* Fixed an issue that was throwing an exception in `OnNetworkUpdate`, causing other `OnNetworkUpdate` calls to not be executed. (#1739) -* Fixed a synchronization issue that occurs when `Time.timeScale` is set to 0. This changes the timing update to use unscaled delta-time. Now network update rates are independent of the local time scale. (#2171) -* Fixed an issue where not all `NetworkVariables` were sent to all clients when a client connects to a server. (#1987) -* Fixed an issue with `IsOwner`/`IsOwnedByServer` being wrong on the server after calling `RemoveOwnership`. (#2211) - -## [1.0.2] - 2022-09-13 - -### Fixed - -* Fixed an issue where `NetworkTransform` was not honoring the `InLocalSpace` property on the authority side during `OnNetworkSpawn`. (#2170) -* Fixed an issue where `NetworkTransform` was not ending extrapolation for the previous state causing non-authoritative instances to become out of sync. (#2170) -* Fixed an issue where `NetworkTransform` was not continuing to interpolate for the remainder of the associated tick period. (#2170) -* Fixed an issue that occurred during `NetworkTransform.OnNetworkSpawn` for non-authoritative instances where it was initializing interpolators with the replicated network state, which now only contains the transform deltas that occurred during a network tick and not the entire transform state. (#2170) - -## [1.0.1] - 2022-08-25 - -### Changed - -* Changed version to 1.0.1. (#2131) -* Updated dependency on `com.unity.transport` to 1.2.0. (#2129) -* When using `UnityTransport`, _reliable_ payloads can now exceed the configured `Max Payload Size`. Unreliable payloads remain bounded by this setting. (#2081) +* Fixed `NetworkManager.ApprovalTimeout` so that it will not timeout due to slower client synchronization times. It now uses the added `NetworkManager.IsApproved` flag to determine if the client has been approved or not. ([#2261](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2261)) +* Fixed an issue caused by changing ownership of objects hidden from some clients. ([#2242](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/issues/2242)) +* Fixed an issue where an in-scene placed NetworkObject would not invoke `NetworkBehaviour.OnNetworkSpawn` if the GameObject was disabled when it despawned. ([#2239](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2239)) +* Fixed an issue where clients were not rebuilding the `NetworkConfig` hash value for each unique connection request. ([#2226](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2226)) +* Fixed an issue where player objects were not taking the `DontDestroyWithOwner` property into consideration when a client disconnected. ([#2225](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2225)) +* Fixed an issue where `SceneEventProgress` would not complete if a client joins late while it is still in progress. ([#2222](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2222)) +* Fixed an issue where `SceneEventProgress` would not complete if a client disconnects. ([#2222](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2222)) +* Fixed issues with detecting if a `SceneEventProgress` has timed out. ([#2222](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2222)) +* Fixed issue [#1924](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/issues/1924) where `UnityTransport` would fail to restart after a first failure (even if what caused the initial failure was addressed). ([#2220](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2220)) +* Fixed an issue where `NetworkTransform.SetStateServerRpc` and `NetworkTransform.SetStateClientRpc` were not honoring local vs world space settings when applying the position and rotation. ([#2203](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2203)) +* Fixed ILPP `TypeLoadException` on WebGL on MacOS Editor and potentially other platforms. ([#2199](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2199)) +* Fixed an issue with implicit conversion of `NetworkObjectReference` to GameObject. It now returns null instead of throwing an exception if the referenced object could not be found (that is, it was already despawned). ([#2158](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2158)) +* Fixed a warning resulting from a stray `NetworkAnimator.meta` file. ([#2153](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2153)) +* Fixed an issue with Connection Approval Timeout not working client side. ([#2164](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2164)) +* Fixed an issue where the `WorldPositionStays` parenting parameter was not synchronizing with clients. ([#2146](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2146)) +* Fixed an issue where parented in-scene placed `NetworkObject`s would fail for late joining clients. ([#2146](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2146)) +* Fixed an issue where the scale was not being synchronized, which caused issues with nested parenting and scale when `WorldPositionStays` was true. ([#2146](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2146)) +* Fixed an issue with `NetworkTransform.ApplyTransformToNetworkStateWithInfo` where it was not honoring axis sync settings when `NetworkTransformState.IsTeleportingNextFrame` was true. ([#2146](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2146)) +* Fixed an issue with `NetworkTransform.TryCommitTransformToServer` where it was not honoring the `InLocalSpace` setting. ([#2146](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2146)) +* Fixed an issue with `ClientRpcs` always reporting in the profiler view as going to all clients, even when limited to a subset of clients by `ClientRpcParams`. ([#2144](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2144)) +* Fixed an issue with RPC code generation (codegen) failing to choose the correct extension methods for `FastBufferReader` and `FastBufferWriter` when the parameters were a generic type (that is, `List`) and extensions for multiple instantiations of that type have been defined (that is, `List` and `List`). ([#2142](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2142)) +* Fixed the issue where running a server (not a host) causes the second player to not receive updates (unless a third player joined). ([#2127](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2127)) +* Fixed an issue where late-joining client transition synchronization could fail when more than one transition occurred. ([#2127](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2127)) +* Fixed an issue that was throwing an exception in `OnNetworkUpdate`, causing other `OnNetworkUpdate` calls to not be executed. ([#1739](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/1739)) +* Fixed a synchronization issue that occurs when `Time.timeScale` is set to 0. This changes the timing update to use unscaled delta-time. Now network update rates are independent of the local time scale. ([#2171](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/issues/2171)) +* Fixed an issue where not all `NetworkVariables` were sent to all clients when a client connects to a server. ([#1987](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/issues/1987)) +* Fixed an issue with `IsOwner`/`IsOwnedByServer` being wrong on the server after calling `RemoveOwnership`. ([#2211](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2211)) + +## [1.0.2] - 2022-09-13[#](https://docs-multiplayer.unity3d.com/releases/netcode/1.0.0#102---2022-09-13 "Direct link to heading") + +### Fixed[#](https://docs-multiplayer.unity3d.com/releases/netcode/1.0.0#fixed "Direct link to heading") + +* Fixed issue where `NetworkTransform` was not honoring the `InLocalSpace` property on the authority side during `OnNetworkSpawn`. ([#2170](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2170)) +* Fixed issue where `NetworkTransform` was not ending extrapolation for the previous state causing non-authoritative instances to become out of sync. ([#2170](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2170)) +* Fixed issue where `NetworkTransform` was not continuing to interpolate for the remainder of the associated tick period. ([#2170](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2170)) +* Fixed issue during `NetworkTransform.OnNetworkSpawn` for non-authoritative instances where it was initializing interpolators with the replicated network state, which now only contains the transform deltas that occurred during a network tick and not the entire transform state. ([#2170](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2170)) + +## [1.0.1] - 2022-08-25[#](https://docs-multiplayer.unity3d.com/releases/netcode/1.0.0#101---2022-08-25 "Direct link to heading") + +* Changed version to 1.0.1. ([#2131](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2131)) +* Updated dependency on `com.unity.transport` to 1.2.0. ([#2129](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2129)) +* When using `UnityTransport`, *reliable* payloads can now exceed the configured `Max Payload Size`. Unreliable payloads remain bounded by this setting. ([#2081](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2081)) * Added performance improvements for cases with many `NetworkObjects` by not iterating over all unchanged `NetworkObjects`. -### Fixed - -* Fixed an issue where not sending all `NetworkVariables` to all clients when a client connects to a server. (#1987) -* Fixed an issue where reading/writing more than 8 bits at a time with BitReader/BitWriter would write/read from the wrong place, returning an incorrect result. (#2130) -* Fixed an issue with the internal `NetworkTransformState.m_Bitset` flag not getting cleared upon the next tick advancement. (#2110) -* Fixed an interpolation issue with `NetworkTransform.Teleport`. (#2110) -* Fixed an issue where the authoritative side was interpolating its transform. (#2110) -* Fixed an issue where Owner-written `NetworkVariable` infinitely writes to themselves. (#2109) -* Fixed an issue where `NetworkList` showed when inserting at the end of a `NetworkList`. (#2099) -* Fixed an issue where a client owner of a `NetworkVariable` with both owners' read and write permissions would not update the server side when changed. (#2097) -* Fixed an issue where attempting to spawn a parent `GameObject` with a `NetworkObject` component attached (that has one or more inactive child `GameObjects`), that are inactive in the hierarchy. Now, with `NetworkBehaviour` components it will no longer attempt to spawn the associated `NetworkBehaviour`(s) or invoke ownership changed notifications but will log a warning message. (#2096) -* Fixed an issue where destroying a `NetworkBehaviour` would not deregister it from the parent `NetworkObject`, leading to exceptions when the parent was later destroyed. (#2091) -* Fixed an issue where `NetworkObject.NetworkHide` was despawning and destroying, as opposed to only despawning, in-scene placed `NetworkObjects`. (#2086) -* Fixed an issue where `NetworkAnimator` synchronized transitions twice due to detecting the change in animation state once a trigger starts a transition. (#2084) -* Fixed an issue where `NetworkAnimator` would not synchronize a looping animation for late joining clients if it was at the very end of its loop. (#2076) -* Fixed an issue where `NetworkAnimator` was not removing its subscription from `OnClientConnectedCallback` when despawned during the shutdown sequence. (#2074) -* Fixed an issue where `IsServer` and `IsClient` are set to false before the object despawns during the shutdown sequence. (#2074) -* Fixed an issue with the `NetworkList Value` event on the server. `PreviousValue` is now set correctly when a new value is set through the property setter. (#2067) -* Fixed an issue where `NetworkLists` is not populating on the client. `NetworkList`. It now uses the most recent list instead of the list at the end of the previous frame when sending full updates to a dynamically spawned `NetworkObject`. The difference in behavior is required because scene management spawns those objects at a different time in the frame, relative to updates. (#2062) +### Fixed[#](https://docs-multiplayer.unity3d.com/releases/netcode/1.0.0#fixed-1 "Direct link to heading") + +* Fixed an issue where not sending all `NetworkVariables` to all clients when a client connects to a server. ([#1987](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/issues/1987)) +* Fixed an issue where reading/writing more than 8 bits at a time with BitReader/BitWriter would write/read from the wrong place, returning an incorrect result. ([#2130](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2130)) +* Fixed an issue with the internal `NetworkTransformState.m_Bitset` flag not getting cleared upon the next tick advancement. ([#2110](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2110)) +* Fixed an interpolation issue with `NetworkTransform.Teleport`. ([#2110](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2110)) +* Fixed an issue where the authoritative side was interpolating its transform. ([#2110](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2110)) +* Fixed an issue where Owner-written `NetworkVariable` infinitely writes to themselves. ([#2109](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/issues/2109)) +* Fixed an issue where `NetworkList` showed when inserting at the end of a `NetworkList`. ([#2099](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2099)) +* Fixed an issue where a client owner of a `NetworkVariable` with both owners' read and write permissions would not update the server side when changed. ([#2097](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2097)) +* Fixed an issue where attempting to spawn a parent `GameObject` with a `NetworkObject` component attached (that has one or more inactive child `GameObjects`), that are inactive in the hierarchy. Now, with `NetworkBehaviour` components it will no longer attempt to spawn the associated `NetworkBehaviour`(s) or invoke ownership changed notifications but will log a warning message. ([#2096](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2096)) +* Fixed an issue where destroying a `NetworkBehaviour` would not deregister it from the parent `NetworkObject`, leading to exceptions when the parent was later destroyed. ([#2091](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2091)) +* Fixed an issue where `NetworkObject.NetworkHide` was despawning and destroying, as opposed to only despawning, in-scene placed `NetworkObjects`. ([#2086](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2086)) +* Fixed an issue where `NetworkAnimator` synchronized transitions twice due to detecting the change in animation state once a trigger starts a transition. ([#2084](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2084)) +* Fixed an issue where `NetworkAnimator` would not synchronize a looping animation for late joining clients if it was at the very end of its loop. ([#2076](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2076)) +* Fixed issue where `NetworkAnimator` was not removing its subscription from `OnClientConnectedCallback` when despawned during the shutdown sequence. ([#2074](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2074)) +* Fixed an issue where `IsServer` and `IsClient` are set to false before the object despawns during the shutdown sequence. ([#2074](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2074)) +* Fixed an issue with the `NetworkList Value` event on the server. `PreviousValue` is now set correctly when a new value is set through the property setter. ([#2067](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/pull/2067)) +* Fixed an issue where `NetworkLists` is not populating on the client. `NetworkList`. It now uses the most recent list instead of the list at the end of the previous frame when sending full updates to a dynamically spawned `NetworkObject`. The difference in behavior is required because scene management spawns those objects at a different time in the frame, relative to updates. ([#2062](https://github.com/Unity-Technologies/com.unity.netcode.gameobjects/issues/2062)) ## [1.0.0] - 2022-06-27