2022 Change Log
v71.0.0 -- 2022-Dec-31
Added:
NetworkClient.activeHostadded as static.Added: Sync* collections now support Client-to-Server Sync Direction.
Added: Network Manager HUD now has a StopClient button for Host mode.
This leaves the server running in Server Only mode and removes the host client.
Fixed: KCP updated to version 1.26.
Fixed:
NetworkManager.OnStopClientnow checks if client was started.Fixed:
NetworkManager.OnClientSceneChangednow checks for authenticated client before callingNetworkClient.Ready.Fixed:
NetworkManager.modeis now set toofflinebefore calling OnStopClient to prevent a recursion.Fixed:
SimpleWebSocketlogging improved.Fixed:
NetworkManagertemplate now resets singleton in Awake override.Fixed:
NetworkDiscoverytemplate now correctly has the messages defined as structs.Fixed: NetworkTransform / NetworkTransformReliable now check for null connectionToClient in UpdateServer.
This cures the NRE's when player object is abandoned by scene changes.
Fixed:
NetworkTransformChildAddComponentMenuattribute reset since it's obsolete.Fixed:
NetworkRigidbody2Dnow hasHelpURLattribute.Fixed:
NetworkServerlogs now have game object references for easier debugging.Fixed: FPS script had wrong namespace.
Fixed: Network Authenticators now use
NetworkClient.Sendso we don't bypass a null check.Fixed:
NetworkClient.ownedis now correctly cleaned up in OnDestroy.Fixed:
NetworkIdentity.spawnedis now correctly cleaned up in OnDestroy.Fixed:
SpawnObjectwas missing a check for identities already spawned.This cleans up the warnings in Additive Scenes implementations.
Changed:
NetworkServer.localConnectionis nowLocalConnectionToClienttype.Changed: NetworkManager's OnStartServer and OnStartHost are now called later in the startup sequence.
Changed:
NetworkRoomManagerno longer does max connection checks...NetworkServeralready does that sooner.Obsolete:
NetworkServer.localClientActiverenamed toactiveHost.BREAKING:
NetworkTransformandNetworkTransformReliablenow inherit from a newNetworkTransformBase.
v70.0.0 -- 2022-Dec-09
Added: Support for Unity 2019 LTS was restored
No promises as how long this will last. Unity no longer supports it, and code debt adds up.
Fixed: KCP updated to version 1.23.
Fixed: Examples have been updated to work with this release.
Fixed: Interest Management now uses
TryGetValuein several places.Fixed: Telepathy no longer calls OnDisconnected twice incorrectly.
Fixed: Transport handlers are cleared when NetworkClient restarts.
Fixed: Several errors with Multiplex Transport were fixed.
Fixed: Weaver now supports inheritance for
NetworkConnectionParameter.Fixed: Client-To-Server SyncVars weren't being sent to clients.
Fixed: Logging in transports was improved.
Changed: NetworkManager.OnClientDisconnect is now an empty virtual method.
Script Template also updated.
Breaking:
NetworkTransformReliable and UnreliableUnreliable version replaces the old
NetworkTransform.SyncIntervalis now managed byNetworkServersendRate(set in Network Manager).NetworkTransformChildremoved...use Network Transform and set target to a child.clientAuthorityobsoleted in favor ofsyncDirectionimpemented in previous release.
v69.0.0 -- 2022-Nov-10
Added: CCU Test example.
Added:
NetworkStatisticscomponent.Fixed:
NetworkRigidbodynow uses double time to keep precision over long runtime.Fixed:
NetworkLerpRigidbodynow uses double time to keep precision over long runtime.Fixed:
NetworkWriter.WriteString()now ensures capacity before writing.Changed: Tools folder created and some rearrangement was done.
v68.0.0 -- 2022-Oct-21
Added: Snapshot Interpolation example.
Added:
NetworkPingDisplaynow has configurable size.Added:
NetworkManager.GetStartPositionis now virtual so it can be overridden.Added: Network Manager now has an Auto Connect option for headless clients / CCU testing.
Added:
NetworkConnectionnow maintainsownedHashSet on both server and client.Added:
NetworkBehaviournow hasSyncDirectionto make client authority components easier.Note: This feature will continue to evolve and may change in future releases.
Fixed: Benchmark, Chat and Tanks examples were improved.
Fixed: Network Manager script template was updated.
Fixed:
NetworkBehaviourlogging was improved.Fixed:
SimpleWebTransportheader lookup is now case-insensitive.Fixed: Spatial Hash Interest Mgmt. now calculates visibility range correctly.
Fixed: Read/Write GUID no longer allocates garbage.
Fixed: Telepathy
ClientDisconnectnow callsDisconnectevent correctly.Fixed
NetworkServer.Spawnnow checks and warns for duplicates.Fixed:
NetworkIdentitynow only checksApplication.isPlayingin Editor context.Fixed: Network Statistics properties made public so other components can access them.
Fixed:
InterestManagement.Awakeis nowprotected virtualso it can be overridden.Fixed:
NetworkIdentityserialization ofcomponentIndexreduced to ~1 bit instead of 1 byte.Fixed:
NetworkBehaviourserialization of headers reduced to 1 byte instead of 4 bytes.Fixed:
NetworkClientnow resets time interpolation whenever host connects or reconnects.Changed:
NetworkBehaviour.ComponentIndexreduced frominttobyte.Changed: Snapshot Interpolation refactored to version 2.
Changed: Latency Simulator
latencySpikerenamed tojitter.Changed: Snapshot Interpolation split into time + value interpolation.
Breaking: Transports folder was moved up and various transports moved into that folder.
Breaking: Runtime folder renamed to Core.
Breaking:
NetworkIdentity/NetworkBehaviourOnSerializeno longer returns abool.Breaking:
NetworkBehaviour.SerializeSyncVarsno longer returns abool.Breaking:
assetIdinSpawnMessagechanged fromGuidtouint.Breaking:
OnError(Exception)is nowOnError(TransportError, string)whereTransportErroris an enum and string is free text provided by transports.Breaking:
NTSnapshotrenamed toTransformSnapshotfor clarity.Breaking:
NetworkTimewas rewritten to useNetworkClient's snapshot interpolation timeline.Obsolete:
NetworkManager.serverTickRaterenamed tosendRate.Obsolete:
NetworkManager.serverTickintervalwas moved toNetworkServer.Obsolete:
NetworkTransport.activeTransportrenamed toactive.Obsolete:
NetworkBehavior.hasAuthorityrenamed to isOwned for clarity.Obsolete:
NetworkConnection.clientOwnedObjectsrenamed toownedfor clarity.
v67.1.0 -- 2022-May-05
Fixed: KCP updated to version 1.19.
Fixed: Team Interest Mgmt
OnDestroyedlogic was improved.Fixed: Comments in various Network Authenticators were updated.
Fixed: Benchmark example was improved so movement revolves around origin.
Fixed: Cmd/Rpc bandwidth reduced from 4 bytes to 2.
Fixed:
Texture2Dnow includes dimensions and readsColor32correctly and supports nulls.Fixed:
NetworkServer.SendToObserversnow correctly usesNetworkConnectionToClient.Fixed:
NetworkClientnow checks and warns for duplicate scene ID.Changed:
NetworkClient/NetworkServerOnErrorrenamed toOnTransportErrorfor clarity.Breaking: Obsoletes were removed.
v66.0.9 -- 2022-Apr-17
NOTE: This was to be the last Mirror release to support Unity 2019 LTS, as it has reached end of life by Unity. Support was restored in Mirror 70.0.0 above.
Added: Network Statistics component, showing messages & packets sent & received per second.
Added:
Queue.TryDequeueextension added for Unity 2019 & 2020 compatibility.Fixed:
NetworkClient.ChangeOwnernow usesisLocalPlayerflag to check ifOnStopLocalPlayershould be called.Fixed:
ReadNetworkBehaviornow correctly reads data on client even if the associateNetworkIdentityis missing from the client.Fixed:
NetworkClient.SpawnPrefabnow correctly looks for custom spawn handlers before using registered prefabs list instead of after.Fixed:
NetworkWriterExtensionsnow usesWriteArrayinstead ofWrite.Fixed: Attempting to serialize prefabs and not-spawned game objects throws a more obvious exception.
Fixed:
DestroyAllClientObjectsnow also resets after unspawn handler called.Fixed: Calling
StopClientin Host mode no longer resetsnextNetId.Fixed: Calling
StopClientin Host mode no longer destroys objects on clients.Fixed: It should now be possible to call StopClient in Host mode to leave the server in a running "Server Only" state, keeping all clients connected and running normally.
Fixed:
AggressiveInliningattribute added in many places to improve performance.Changed:
NetworkWriter/NetworkReaderAPI simplified.Changed:
PooledNetworkReader/PooledNetworkWriterrenamed toNetworkReaderPooled/NetworkWriterPooled.Changed: Transport base class moved to Runtime folder, Transport folder renamed to Transports
v65.0.0 -- 2022-Mar-09
Added: Command / ClientRpc / TargetRpc can now be overloaded.
Added: Network Behaviour now has
OnStopLocalPlayervirtual method, invoked right beforeOnStopClient. Script Template has also been updated.Added: Network Manager Template overrides
singletonto eliminate the need to cast Network Manager's singleton to derived class type.Added: Support for generic
NetworkBehaviour<T>subclasses.Fixed: Network Reader/Writer uses blittable reads/writes where possible.
Fixed: Android compatibility for Read/Write blittable.
Fixed: Android Multicast Discovery.
Fixed:
NetworkTransformChildnow correctly syncs initial state when spawned.Fixed: Latency Simulation now uses
Time.unscaledTime.Fixed:
SimpleWebsocketTransporthas been updated to fix a number of bugs, including compatibility with Unity 2021.x, and handling of messages larger than 64K.Changed: A bunch of virtual methods now take
NetworkConnectionToClientinstead ofNetworkConnection.Changed:
RemoteCallHelperrenamed toRemoteProcedureCalls.Changed:
CmdDelegaterenamed toRemoteCallDelegate.Changed:
MirrorInvokeTyperenamed toRemoteCallType.Changed:
NetworkManager.clientLoadedSceneis nowprotected.Obsolete:
NetworkTransformnow has overloads forCmdTeleport/RpcTeleportwith Quaternion rotation, deprecating separateCmdTeleportAndRotate/RpcTeleportAndRotatemethods, made possible by implementing Command / ClientRpc overloads mentioned above.Obsolete: Experimental Network Transform components. Use the regular ones instead.
v57.0.0 -- 2022-Jan-12
Fixed: KCP updated to version 1.17.
Fixed: Use Read/Write blittable for performance improvement.
Removed: Obsolete Network Visibility.
v55.3.8 -- 2022-Jan-05
Added: Team Interest Management and Network Team components.
Added: Device Authenticator.
Added: Custom Interest Management Script Template.
Added: Custom Network Transform Script Template.
Added: Rotation parameter added to
NetworkTransformCmdTeleport/RpcTeleport.Added: Support for a bunch more nullable types.
Added: Additive Levels example.
Added: Texture2D and Sprite are now supported Data Types.
Fixed: Fast Enter Play mode without Reload Domain now supported by resetting all statics.
Fixed: Network Transform now uses less bandwidth by only syncing changes based on sensitivity.
Fixed: KCP updated to version 1.15.
Fixed:
ReplacePlayerForConnectionnow correctly updatesisLocalPlayerflag.Fixed:
OnStopClientno longer called twice in certain cases.Fixed:
NetworkServernow checks foractivebefore invoking Interest Management updates.Fixed: Objects spawned with a client owner no longer lose ownership when respawned via interest management.
Fixed: Delayed Disconnect in Basic Authenticator now uses
HashSetof connections pending disconnect.Fixed:
NetworkTransformnow checks for ready client before sending updates to server.Fixed:
OnStartLocalPlayernow correctly called again afterRemovePlayerForConnectionfollowed byAddPlayerForConnectionwith the same player object.Changed:
NetworkMatchmoved toInterestManagement/Matchfolder.Changed: Internal code for
SyncVar. Resetting non-default inspector values may be required.Changed: Tanks example updated.
Changed: Chat example updated...overhauled really.
Changed: Network Reader / Writer now use blittable serialization where possible (4-6x performance improvement).
Breaking: Removed obsolete
ConfigureServerFrameRateUseConfigureHeadlessFrameRateinstead.Breaking: Removed obsolete
PersistNetworkManagerToOfflineScene.Breaking:
NetworkAuthenticatorOnClientAuthenticatedevent no longer needs a NetworkConnection parameter.Obsolete: OnClient* virtual methods in Network Manager no longer take a
NetworkConnectionparameter.Obsolete: Network Room Manager client overrides no longer have
NetworkConnectionparameter. UseNetworkClient.connectionin your overrides instead.
Last updated