Releases: FirstGearGames/FishNet
4.6.6R
-
Fixed UniversalTickSmoother moving incorrectly with non-Vector3.one scales.
-
Fixed despawning root NetworkObjects with pooling causing nested NetworkObjects to not respawn automatically.
-
Fixed conditional NullReferenceCondition in SceneCondition.
-
Fixed nested runtime NetworkObjects not having their parent unset when their runtime parent was pooled.
-
Fixed possible NullReferenceException within generated comparers for reference types.
-
Fixed prediction reconciles corrupting class instance memory.
-
Fixed NetworkTransform.ComponentConfiguration incorrectly making rigidbodies kinematic.
-
Fixed limited memory leak on server related to predicted spawning.
-
Fixed failed Predicted Spawns potentially pooling on clients, when expected to destroy.
-
Fixed DefualtObjectPool now calls ResetState on nested NetworkObjects as well.
-
Fixed possibility of nested NetworkObjects with modified InitializationOrder initializing before their parents.
-
Fixed nested NetworkObjects not spawning when pooling.
-
Improved logging for NetworkObject ObjectId fetching.
-
Improved UniversalTickSmoother.SetSmootherProperties now allows specifying if for owner or spectator.
-
Improved reduced NetworkBehaviour memory allocations.
-
Improved Predicition attributed methods no longer need to be private.
-
Improved ReserializenetworkObjects now uses Configuration settings when searching for prefabs.
-
Added LoadSceneParameters to supported automatically serialized types.
-
Added ObjectPool.AddPrefabObjects which returns added objects (#863).
-
Added DefaultObjectPool.ClearPool(NetworkObject) to clear cache for specified NetworkObject type.
-
Changed reverted NetworkObjects despawning when disabled.
-
Changed restructured file paths; this may require you to delete FishNet before importing this version.
-
Changed Tugboat.StopSocketsOnThread now defaulted to false.
4.6.5R
- Fixed instance of Multipass Id not found error.
- Fixed rare chance of Observers not removing a disconnected client when using multiple transports and only one is disconnected.
- Fixed internal NetworkInitialize methods are now called before OnStartNetwork even if the object is disabled.
- Improved SyncVar initial value will not overwrite synchronized value in the condition object receives synchronized value while disabled, and is later enabled for the first time.
- Fixed OnStop callbacks not occuring on nested objects when disconnecting the transport socket.
- Added TimeManager.HalfRoundTripTime.
- Added Beta Recursive Despawns for internal change.
- Fixed NetworkTransform.LastObserversRpcTick not resetting.
- Improved adaptive interpolation to be more consistent and efficient.
- Fixed harmless errors when using DebugManager Validate Rpc Lengths.
- Added Tugboat.StopSocketsOnThread to stop local connections using a thread (default/current behavior).
- Improved Tugboat now tries to stop the socket if detected as started when starting a new connection.
- Fixed unicode strings not writing proper length.
- Fixed large replicates not splitting into multiple packets.
- Added UniversalTickSmoother.Set/GetAdditionalGraphicalOffsetValues.
- Fixed SyncType.ResetState NullReferenceException.
- Fixed UniversalTickSmoother interpolation times changing eratically resulting in smoothing pausing.
- Fixed RigidbodyPrediction demo 'boostStart' check (#870).
- Fixed NewNetworkBehaviour template missing file exception.
- Fixed warning when Time/PredictionManager would try to simulate physics with a 0f timescale (#860).
- Fixed NetworkTransform stuttering spectated objects as host when using a send interval larger than 1.
- Fixed prediction corrupting class instance memory.
4.6.4R hf0
- Fixed NetworkBehaviour template paths not working properly for package manager releases (#858, #859).
- Improved debug output on Validate Rpc Lengths.
- Fixed MethodAccessException from codegen failing to change ReplicateDataContainer from Internal to Public.
- Fixed yet another incorrect using being automatically added by Jetbrains rider.
hf0:
- Improved Validate Rpc Lengths debug text.
- Fixed TickNetworkBehaviour incorrectly subscribing for LateUpdates.
4.6.3R
- Fixed Beta SyncList NullReferenceException error (#850).
- Improved List and Dictionary collection readers now take collections from caches first.
- Fixed NetworkTransform setting Rigidbody/2D interpolation to none on owners.
- Fixed server configuring NetworkTransform before there was an owner.
- Added PreciseTick(uint) constructor to generate a PreciseTick with 0 subtick value.
- Fixed ReadPayload data corruption (#855).
- Improved DebugManager inspector.
- Fixed Channel always showing Unreliable during Replicate replays.
- Fixed UniversalTickSmoother conditionally providing excessively large adaptive interpolation values.
- Added Reader.ReadStringAllocated.
- Obsoleted Reader.ReadString.
- Added DebugManager Validate Rpc Lengths to verify RPCs potentially corrupting data.
- Added SceneProcessorBase.GetLastLoadedScene.
- Fixed OnStopNetwork incorrectly invoking on clientHost when object despawned for client but not yet on server.
- Added New NetworkBehaviour template menu under Fish-Networking > Configuratoin, thanks Rain1950! (#851).
4.6.2R
- Improved ReplicateState changes are now beta and can be toggled via Fish-Networking menu.
- Improved RigidbodyPauser, you can now specify which Rigidbodies to use manually.
- Fixed harmless error in NetworkTickSmoother, null reference exception, when exiting play mode in Unity.
- Fixed ReplicateState.FastContains returning incorrectly.
4.6.1R
- Fixed Network/OfflineTickSmoother detach/reattach settings not working.
- Improved normalized ReadMe file layouts and names.
- Fixed Review Reminder window no longer shows for Virtual Players on Unity 6.
4.6.0
- Added preciseTick.AsDouble extension.
- Added double.AsPreciseTick extension.
- Added NetworkObject.IsDestroying to know when a NetworkObject is being destroyed or pooled during OnStop callbacks.
- Added TimeManager.TimeToTicks(long).
- Added NetworkObject.IsInitializedNested.
- Added ServerSpawner component which automatically spawns NetworkObjects when the server starts.
- Added OfflineTickSmoother.
- Added NetworkTickSmoother.
- Improved ReplicateState terminology: Future is now only ever true when reconciling, and when data tick has not been run as Current.
- Changed ReplicateState is now a flag.
- Changed ReplicateState previous values now use flag checks internally.
- Added replicateState.FastContains for flag checking.
- Added ReplicateState.IsCurrent, which is the opposite of IsFuture.
- Obsoleted several ReplicateState values in favor of new terminology.
- Improved CharacterControllerPrediction demo notes.
- Improved CharacterControllerPrediction now uses NetworkTrigger to attach and detach from platforms.
- Improved Stable and Beta mode are now available per feature.
- Improved several API and ToString methods to be more verbose.
- Improved PlayerSpawner to find NetworkManager within hierarchy, using InstanceFinder only as a fallback.
- Changed PredictionManager.StateInterpolation is now public.
- Changed Reader.Initialize methods are now public.
- Fixed set RollbackPhysicsType enum as flag.
- Fixed OnStop callbacks not firing on Instantiated objects nested to scene objects when server suddenly disconnects.
Removed debug. - Fixed DefaultScene incorrectly loading Offline scene when a server stops, even if another server is running such as through Multipass.
- Fixed TimeManager.Tick drifting with latency.
- Fixed UseGlobalCustomSerializer attribute not working on types within read-only assemblies.
- Fixed Object Initialized Twice Error when stopping and starting all sockets without stopping the editor or application.
- Fixed conditional Writer corruption when manually calling RebuildObservers.
- Fixed NetworkObject.SetInitializedValues not running on prefab scene objects with properties that differed from the prefabs.
- Fixed nested NetworkObjects being destroyed on socket stop when using object pooling (#842).
- Fixed collection modified error when using extension transform.DestroyChildren with destroyImmediate as true.
- Fixed BandwidthDisplay showing flipped in/out values for client usage (#843).
- Fixed NetworkCollider/Trigger sometimes incorrectly firing OnEnter/Exit events during reconcilations.
- Obsoleted NetworkBehaviour/Object.HasAuthority; replaced with IsController.
- Obsoleted DetachableNetworkTickSmoother; replaced with NetworkTickSmoother.
- Obsoleted MonoTickSmoother; replaced with OfflineTickSmoother.
- Obsoleted NetworkObject smoother settings in favor of using NetworkTickSmoother.
- Removed HistoryDuration on NetworkCollider/Trigger as it is no longer needed.
- Removed unused ReplicateState values.
4.5.8R
- Fixed memory leak in ObserverConditions when using pooling.
- Fixed memory leak in ObserverConditions when destroying objects as clientHost before client-side deinitialized the object.
- Improved notes on a ReplicateState enum value.
- Improved error logging for SyncTypes.
4.5.7R
- Fixed TimeManager.TimePassed negative time comparison (#829).
- Added Transport.GetPacketLoss. Only some transports support this feature.
- Added Tugboat.GetPacketLoss(bool).
- Added Server/ClientAttribute.UseIsStarted to force using IsServer/ClientStarted instead of Initialized.
- Fixed conditional NullReferenceException on clientHost when NetworkObserver deinitialized OnDestroy (#812).
- Renamed SceneManager.MoveClientHostObjects to MoveClientObjects.
- Changed SceneManager.MoveClientObjects now also applies to ClientOnly.
- Fixed NullReferenceExceptions on clientHost when rapidly spawning while changing scenes.
- Improved removed unnecessary logging for clientHost.
- Fixed NetworkObject NullReferenceException during OnDestroy when nested.
- Improved sending reconciles on Channel.Reliable now forces them through regardless if replicates run recently.
- Fixed Unity bug IL2CPP build crash for RPCs in generic classes. This is a limited work-around; for proper resolution use Unity 2022 or higher.
- Fixed OnServerDespawn not invoking via observer builds (thanks gooby!).
- Fixed math on Quaterion.Subtract extension.
- Fixed RigidbodyPauser unpausing to kinematic states when another Pauser made kinematic. This bug mostly affected OfflineRigidbody.
- Fixed invalid read size error when reader deserializers a null list (#837).
- Fixed ChildTransformTickSmoother graphics not moving with target when starting as clientHost then disconnecting client.
- Fixed ChildTransformTickSmoother moving to incorrect values when graphicalObject had an offset and when using adaptive interpolation.
- Fixed replicates not running default data when data was queued but interpolation was not met yet.
- Fixed preferred scenes not being set as active scene when SceneManager.SetActiveScene is false (#838).
- Fixed NetworkManager reference being null on reconcile and replicate readers, resulting in possible errors when reading types dependent on a NetworkManager.
- Fixed harmless NullReferenceException caused by ChildTransformTickSmoother when exiting play/application (#818).
- Fixed harmless Multipass Id not found error in Multipass when subsequentially starting server, client, then stopping server (#828).
- Improved performance slightly while in development mode when clients disconnect.
- Updated Edgegap to 3.0.9.
- Added CharacterController prediction demo, featuring: sprint, jumping, stamina, moving platforms, parenting.
- Added Rigidbody prediction demo, featuring: NetworkTrigger pickup, speed boost, predicting multiple rigidbodies.
4.5.6R
- Obsoleted PooledWriter.ResetState in favor of Store/Length.
- Obsoleted PooledReader.ResetState in favor of Store.
- Obsoleted Writer.Reset in favor of Clear.
- Added Writer.Clear.
- Fixed rare chance of writer corruption due to a writer being stored rather than cleared.
- Obsoleted TransformProperties.LocalScale in favor of Scale.
- Added Writer.WriteTransformProperties.
- Added Reader.ReadTransformProperties.
- Removed types no longer used by Mirror in MirrorUpgrade.
- Added BandwidthDisplay.SecondsAveraged to provide better averages over time.
- Added NetworkObject.IsTakingOwnership QOL.
- Added Quaterions.Subtract/Add extensions.
- Changed Beta prediction code moved into stable.
- Added Resettable/RingBuffer.Enqueue.
- Added Resettable/RingBuffer.Dequeue.
- Added Resettable/RingBuffer.TryDequeue.
- Improved ResettableRingBuffer.Add now returns replaced entries.
- Improved ResettableRingBuffer.Add/RemoveRange now have ability to specify resetting replaced or cleared.
- Changed failed predicted spawns are now destroyed on the server rather than optionally pooled. This will be restored at a later date.
- Fixed predicted spawns becoming corrupt on spawner (#815, #801).
- Improved performance slightly on TickNetworkBehaviour when manually changing subscriptions.
4.5.5R
- Fixed DistanceCondition.MaximumDistance not applying properly when set at runtime (#809).
- Obsoleted DistanceCondition.MaximumDistance.
- Added DistanceCondition.Get/SetMaximumDistance.
- Fixed predicted spawners not becoming an observer of the object they spawned.
- Fixed internals trying to call prediction methods on NetworkBehaviours when they do not utilize prediction when at least one NetworkBehaviour for the NetworkObject does.
- Fixed SyncTimers finishing immediately on clientsOnly when using timer.Update without arguments. (#807).
- Added TickNetworkBehaviour.SetTickCallbacks to set callbacks at runtime.