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
andRemoveClientAuthority
now send this message instead of aSpawnMessage
, 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 tofalse
now.Changed:
NetworkTransformV2
isClientAuthority
nowprotected
instead ofprivate
.Changed: Examples using
NetworkTransformV2
now using default values.Changed: Updated
NetworkManager
Script Template.Changed: Tanks example has health bars now.
Changed:
componentIndex
is now abyte
inCmdMessage
andRpcMessage
structs.Changed:
SyncObject
is now a class instead of an interface.Obsolete:
SyncObject.Flush
- UseClearChanges
instead.Obsolete:
NetworkBehaviour.getSyncVarHookGuard
- UseGetSyncVarHookGuard
instead.Obsolete:
NetworkBehaviour.setSyncVarHookGuard
- UseSetSyncVarHookGuard
instead.Obsolete:
NetworkBehaviour.SetDirtyBit
- UseSetSyncVarDirtyBit
instead.Obsolete:
NetworkServer.SendToReady
- UseSendToReadyObservers
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
inNetworkLoop
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 intoNetworkServer.spawned
andNetworkClient.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
andOnClientError
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/weeksFixed: Quaternion Compression would produce wrong result for certain values.
Fixed: Added missing
[Command]
attribute toNetworkAnimator.CmdSetAnimatorSpeed
.Fixed:
DestroyObject
is now called when cleaning up scene identities too. Sends unspawn messages and callsOnStopClient
/OnStopServer
properly.Fixed: Clear
hasAuthority
when destroying and callOnStopAuthority
.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 toConfigureHeadlessFrameRate
.
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 clearsOnConnected
/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
andReadUri
.Fixed:
FinishLoadScene
should not be called whencustomHandling
is true (Additive Scenes).Fixed: Prevent assetId from being set to an empty string.
Fixed:
clientAuthority
is now public inNetworkRigidbody
/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 callsDestroyPlayerForConnection
ifNetworkManager
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 toushort
.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 serversAdded:
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 whereisLocalPlayer
would be false inOnDestroy
, so some components couldn't rely on it inOnDestroy
.Fixed:
NetworkIdentity.Reset
now resetsisLocalPlayer
after theisLocalPlayer
/ClearLocalPlayer
check.Fixed:
NetworkIdentity.OnDestroy
now only clearsNetworkClient.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 inNetworkClient
instead.ClientScene
will be fully deprecated and removed in a later version.Changed:
NetworkClient.RegisterHandler
overload that included aNetworkConnection
is now obsolete and will be removed in a later version. Handlers can useNetworkClient.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 hasisServer
/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
: avoidNullReferenceException
when called inOnApplicationQuit
or from tests.Fixed:
NetworkServer.Update
: inactive connection check moved into the main connectionsforeach
loop. Eliminates aforeach
-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 torequiresAuthority
, default true.Breaking:
ClientRpc
excludeOwner
parameter renamed toincludeOwner
, 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: Network Owner Checker.
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 forconnectionId
< 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.
Last updated