Mirror
Search
K
Comment on page

2021 Change Log

Mirror uses semantic versioning, and the versions shown here are those that were published to the Asset Store, and occasionally major version bumps happen mid-month between store submissions and are therefore not individually shown here.

v53.0.0 -- 2021-Oct-20

  • Added: ChangeOwnerMessage. NetworkIdentity.AssignClientAuthority and RemoveClientAuthority now send this message instead of a SpawnMessage, so transform data is no longer reset to server values, so no more snap-back of moving objects.
  • Added: SyncDictionary can now be declared and initialized from an existing List.
  • Added: Nullable color added to Data Types Mirror handles.
  • Added: ILPostProcessor is now used for Unity versions 2020.3 and later.
  • Fixed: Stopping Discovery no longer causes a crash.
  • Fixed: Additive Scenes example had misplaced scene objects.
  • Fixed: NetworkManager.ServerChangeScene now aborts if scene change already in progress.
  • Fixed: hasAuthority is now properly cleared on client when unspawning scene objects.
  • Fixed: Match Interest Management now correctly handles networked objects without NetworkMatch components, and no longer throws Key not found exception in certain cases.
  • Fixed: NetworkManager.StopClient no longer fires twice in certain cases.
  • Fixed: NetworkMatch was missing attributes.
  • Changed: NetworkLoop static class is now public.
  • Changed: NetworkConnection.observing is now public.
    Changed: NetworkTransformV2 default values updated. interpolateScale also defaults to false now.
  • Changed: NetworkTransformV2 isClientAuthority now protected instead of private.
  • Changed: Examples using NetworkTransformV2 now using default values.
  • Changed: Updated NetworkManager Script Template.
  • Changed: Tanks example has health bars now.
  • Changed: componentIndex is now a byte in CmdMessage and RpcMessage structs.
  • Changed: SyncObject is now a class instead of an interface.
  • Obsolete: SyncObject.Flush - Use ClearChanges instead.
  • Obsolete: NetworkBehaviour.getSyncVarHookGuard - Use GetSyncVarHookGuard instead.
  • Obsolete: NetworkBehaviour.setSyncVarHookGuard - Use SetSyncVarHookGuard instead.
  • Obsolete: NetworkBehaviour.SetDirtyBit - Use SetSyncVarDirtyBit instead.
  • Obsolete: NetworkServer.SendToReady - Use SendToReadyObservers instead.
  • Removed: Various obsolete methods that were at least 3 months old.
  • Removed: Fallback transport -- no longer included or supported.

v46.0.4 - 2021-Sep-03

  • Added: Tanks example now has GUIConsole for easier debugging.
  • Fixed: UnpackAndInvoke now throws error and disconnects in case of missing handlers.
  • Fixed: NetworkServer/NetworkClient now detects ever-growing batches.
  • Fixed: Weaver now uses ILPostProcessing in Unity 2020+.
  • Fixed: Movement delay in NetworkTransformV2.
  • Fixed: NetworkTransformBase.OnDrawGizmos now only runs in play mode.
  • Fixed: Added missing using to Network Manager template.
  • Fixed: Some OnGUI calls are now wrapped in #if UNITY_EDITOR || DEVELOPMENT_BUILD.
  • Changed: NetworkEarlyUpdate/NetworkLateUpdate in NetworkLoop now exposed via Action events.
  • Changed: Multiple Matches example now uses Match Interest Management.
  • Changed: Multiple Additive Scenes example now uses Scene Interest Management.
  • Obsolete: NetworkIdentity.spawned has been split into NetworkServer.spawned and NetworkClient.spawned.
  • Removed: Network Observer template.

v44.0.2 -- 2021-Aug-08

  • Added: Scene Interest Management. Put this on Network Manager and remove all Network Scene Checker components.
  • Added: Match Interest Management. Put this on Network Manager and replace Network Match Checker with new Network Match component.
  • Added: Interest Management now has OnSpawned / OnDestroyed events.
  • Added: Network Transform V2 with Snapshot Interpolation.
  • Added: Network Transport exception events that transports can raise to Network Manager's OnServerError and OnClientError overrides. Transports still need to implement their part.
  • Added: ZigZag VarInt added back to Compression module.
  • Fixed: Network Discovery HUD now calls StopDiscovery when stopping server/host/client.
  • Fixed: NetworkTime.lastPingTime is now reset properly.
  • Fixed: KCP updated to version 1.12.
  • Fixed: NetworkBehaviour dirty check uses double time.
  • Fixed: NetworkTime.UpdateClient uses double precision time for accuracy over days/weeks.
  • Fixed: NetworkAnimator uses double precision time for accuracy over days/weeks
  • Fixed: Quaternion Compression would produce wrong result for certain values.
  • Fixed: Added missing [Command] attribute to NetworkAnimator.CmdSetAnimatorSpeed.
  • Fixed: DestroyObject is now called when cleaning up scene identities too. Sends unspawn messages and calls OnStopClient/OnStopServerproperly.
  • Fixed: Clear hasAuthority when destroying and call OnStopAuthority.
  • Changed: Distance Interest Management now has custom range component, replacing Network Proximity Checker.
  • Changed: Per-scene interest management replaces Network Scene Checker.
  • Changed: Network Match component separated from Network Match Checker.
  • Changed: Match Interest Management replaces Network Match Checker.
  • Changed: NetworkManager.isNetworkActive is now a readonly bool.
  • Changed: NetworkManager.ConfigureServerFrameRate renamed to ConfigureHeadlessFrameRate.

v42.2.12 -- 2021-Jul-12

  • Added: Timestamp-based batching. Batching is always on now and is bidirectional.
  • Added: NetworkServer / NetworkClient OnConnected / OnDisconnected events now public so custom Network Managers can hook into them.
  • Fixed: NetworkServer / NetworkClient Shutdown now correctly clears OnConnected / OnDisconnected event handlers.
  • Fixed: Scene loading with batching works now.
  • Fixed: KCP 1.11 significantly reduced garbage allocations.
  • Fixed: Fallback Transport didn't propagate Early/Late Update.
  • Fixed: OnClientDisconnect wasn't being called for host client.
  • Fixed: Interest Management V2 now allows SetHostVisibility overwriting.
  • Fixed: Serialization precision over days using frame count instead of single precision time.
  • Fixed: Added null check and error logging when networkBehaviours array is null.
  • Fixed: Force calling NetworkIdentity.Awake when parent is inactive.
  • Fixed: OnClientChangeScene was not firing for host client.
  • Fixed: Avoid NRE in UnpackAndInvoke.
  • Fixed: Null handling in WriteUri and ReadUri.
  • Fixed: FinishLoadScene should not be called when customHandling is true (Additive Scenes).
  • Fixed: Prevent assetId from being set to an empty string.
  • Fixed: clientAuthority is now public in NetworkRigidbody / NetworkRigidbody2D.
  • Changed: Transports are no longer paused (disabled) during scene loading. Message processor handles this correctly now, so transports can be simplified.

v40.0.9 -- 2021-Jun-08

  • Added: ServerAuthFailed bool to Basic Authenticator.
  • Added: Discovery HUD now has a Stop Button.
  • Fixed: KCP updated to version 1.10.
  • Fixed: Telepathy updated to version 1.8.
  • Fixed: NetworkIdentity default script execution order set to -1.
  • Fixed: Discovery now properly shuts down in OnDisable / OnDestroy.
  • Fixed: Discovery now stops discovering when client is connected to game server.
  • Fixed: NetworkTransform sync scale and interpolation.
  • Fixed: Player object now prevented from being added to Network Manager's spawnable prefabs list
  • Fixed: Simple Web Sockets transport SSL Handshake.
  • Fixed: NetworkServer.OnDisconnect now calls DestroyPlayerForConnection if NetworkManager doesn't handle it.
  • Fixed: NetworkClient.Disconnect now checks for null connection and that it's not called twice.
  • Fixed: NetworkTime now resets when server starts.
  • Fixed: Basic example PlayerUI text corrected.
  • Fixed: Timeouts in Telepathy fixed.
  • Fixed: Observers are now correctly cleared after other clients disconnect.
  • Changed: NetworkConnection parameter removed from Network Authenticator's Client messages.
  • Changed: MessagePacking GetId<T> return value changed to ushort.
  • Changed: Transport.ServerDisconnect return is now void instead of bool.
  • Removed: Network Manager's Idle Timeout.
  • Removed: Cloud API and examples.
  • Obsolete: Fallback Transport will be removed in a later release.

v35.1.0 -- 2021-Mar-29

  • Added: Network Discovery now has a bool to disable automatic active discovery.
  • Added: PersistNetworkManagerToOfflineScene to Network Manager...see tooltip.
  • Added: Latency Simulation Transport that can be added to Network Manager and have normal transport chained to it to simulate network latency.
  • Added: Sync Mode tooltip.
  • Added: Headless clients now set targetFramerate like headless servers
  • Added: NetworkTransform now has the following features:
    • Compress Rotation option
    • Sync Scale option
    • Interpolate Scale option
  • Fixed: No Writer found / No Reader found errors have been resolved.
    • NOTE: You may need to delete your Library/ScriptAssemblies folder and IL2CPP cache
  • Fixed: NetworkIdentity.isLocalPlayer is only set, but never reset. Fixes a bug where isLocalPlayer would be false in OnDestroy, so some components couldn't rely on it in OnDestroy.
  • Fixed: NetworkIdentity.Reset now resets isLocalPlayer after the isLocalPlayer /ClearLocalPlayer check.
  • Fixed: NetworkIdentity.OnDestroy now only clears NetworkClient.localPlayer if we are still the local player.
  • Fixed: Client Shutdown is no longer run twice via user code calling StopClient.
  • Fixed: SyncVar field label not shown in Unity 2020 versions (Unity bug).
  • Changed: Network Manager OnServerAddPlayer now adds the connection id to the object name (on the server only, not synced to clients).
  • Changed: Several fields in NetworkTime were renamed. The previous field names are still there and obsolete and will be removed in a later version.
  • Changed: Most of ClientScene is now obsolete, use same or similar properties in NetworkClient instead. ClientScene will be fully deprecated and removed in a later version.
  • Changed: NetworkClient.RegisterHandler overload that included a NetworkConnection is now obsolete and will be removed in a later version. Handlers can use NetworkClient.connection directly.
  • Changed: Channel constants names were shortened. The original constants are still there and obsolete, and will be removed in a later version.
  • Breaking: Minimum supported Unity version is now 2019.4.x LTS.
  • Breaking: ClientScene.onLocalPlayerChanged removed.
  • Breaking: Compiler symbols culled to Mirror 17 and later versions.

v32.1.4 -- 2021-Mar-08

  • Added: NetworkIdentity now has isServer / isClientOnly.
  • Added: Global Interest Management. This may eventually lead to replacement of Scene Checker, Match Checker, and Owner Checker components.
  • Added: GUI Console ported from uMMORPG (F12 to show/hide).
  • Added: Network Manager now takes itself out of DDOL in StopServer / StopClient when offline scene is defined to avoid singleton collision.
  • Added: Message batching. Enable in Network Manager.
  • Added: Custom Player Loop:
    • NetworkEarlyUpdate (before any Update/FixedUpdate)
    • NetworkLateUpdate (after any Update/FixedUpdate/LateUpdate) loops
  • Added: KCP Tick split into TickIncoming / TickOutgoing to utilize the new NetworkEarly/LateUpdate functions...minimizes latency.
  • Added: Push > Pull Broadcasting Part 1.
  • Fixed: Telepathy 1.7 receive timeout disabled by default, increased MirrorTransport timeout to 30sec from 5sec to cover scene changes.
  • Fixed: NetworkServer.SpawnObserversForConnection refactored to support all visibility cases (ForceShown / ForceHidden / Default) and all systems (legacy / new / default).
  • Fixed: NetworkManager.StopServer/StopClient: avoid NullReferenceException when called in OnApplicationQuit or from tests.
  • Fixed: NetworkServer.Update: inactive connection check moved into the main connections foreach loop. Eliminates a foreach-connections loop.
  • Fixed: NetworkServer.Update: separate connections update loop moved into the main loop. Now there is only one connections loop.
  • Changed: NetworkManagerHUD.showGUI is now obsolete and will be removed in a later version.
  • Changed: SendToClientOfPlayer is now obsolete and will be removed in a later version.
  • Breaking: LogFactory and logging asset feature removed.
  • Breaking: Command ignoreAuthority parameter renamed to requiresAuthority, default true.
  • Breaking: ClientRpc excludeOwner parameter renamed to includeOwner, default true.
  • Breaking: ClientScene.spawnableObjects is no longer public.

v30.5.3 -- 2021-Feb-15

  • Fixed: Fixed a bug in batching for messages larger than MTU.
  • Fixed: Telepathy 1.6 fixes data races and improves stability.
  • Fixed: KCP 1.8 fixes empty message sending / receiving undefined behaviour and fixes IPv6 on Nintendo Switch.
  • Changed: Network Manager default max connections is now 100.
  • Breaking: NetworkServer / NetworkClient don't use Connect/Disconnect messages any more. Connect/Disconnect events are raised by the transport instead.
  • Breaking: OnServerError / OnClientError removed since no transport ever implemented them.
  • Breaking Removed NetworkConnection.InvokeHandler as no longer needed.

v30.5.0 -- 2021-Feb-05

  • Added: KCP Transport updated to version 1.7.
  • Added: Batching support for server messages - See Network Manager to enable.
  • Added: Script Templates are back in the package -- See the new Mirror section in the Assets > Create menu.
  • Added: Unreliable channel added to KCP Transport.
  • Fixed: Performance improvements to KCP Transport.
  • Fixed: Examples with UI now work with Unity 2018.4 again
  • Fixed: NetworkServer.OnConnected allows for connectionId < 0 now.
  • Fixed: Corrected NetworkRoomPlayer ReadyStateChanged oldReadyState parameter name.
  • Changed: Ping/Pong messages now use unreliable channel if available from transports.
  • Breaking Read / Write Blittable has been removed.