2022 Change Log
Mirror is published to the Asset Store at the start of every month, unless some critical issue causes a delay.
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.
v71.0.0 -- 2022-Dec-31
Added:
NetworkClient.activeHost
added 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.OnStopClient
now checks if client was started.Fixed:
NetworkManager.OnClientSceneChanged
now checks for authenticated client before callingNetworkClient.Ready
.Fixed:
NetworkManager.mode
is now set tooffline
before calling OnStopClient to prevent a recursion.Fixed:
SimpleWebSocket
logging improved.Fixed:
NetworkManager
template now resets singleton in Awake override.Fixed:
NetworkDiscovery
template 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:
NetworkTransformChild
AddComponentMenu
attribute reset since it's obsolete.Fixed:
NetworkRigidbody2D
now hasHelpURL
attribute.Fixed:
NetworkServer
logs now have game object references for easier debugging.Fixed: FPS script had wrong namespace.
Fixed: Network Authenticators now use
NetworkClient.Send
so we don't bypass a null check.Fixed:
NetworkClient.owned
is now correctly cleaned up in OnDestroy.Fixed:
NetworkIdentity.spawned
is now correctly cleaned up in OnDestroy.Fixed:
SpawnObject
was missing a check for identities already spawned.This cleans up the warnings in Additive Scenes implementations.
Changed:
NetworkServer.localConnection
is nowLocalConnectionToClient
type.Changed: NetworkManager's OnStartServer and OnStartHost are now called later in the startup sequence.
Changed:
NetworkRoomManager
no longer does max connection checks...NetworkServer
already does that sooner.Obsolete:
NetworkServer.localClientActive
renamed toactiveHost
.BREAKING:
NetworkTransform
andNetworkTransformReliable
now 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
TryGetValue
in 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:
NetworkTransform
Reliable and UnreliableUnreliable version replaces the old
NetworkTransform
.SyncInterval
is now managed byNetworkServer
sendRate
(set in Network Manager).NetworkTransformChild
removed...use Network Transform and set target to a child.clientAuthority
obsoleted in favor ofsyncDirection
impemented in previous release.
Support for Unity 2019 LTS was restored in this release, but we cannot promise how long we'll be able to maintain compatibility as code debt adds up.
v69.0.0 -- 2022-Nov-10
This version was published to the Asset Store as 2022-10.
Added: CCU Test example.
Added:
NetworkStatistics
component.Fixed:
NetworkRigidbody
now uses double time to keep precision over long runtime.Fixed:
NetworkLerpRigidbody
now 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
This version was published to the Asset Store as 2022-09.
Added: Snapshot Interpolation example.
Added:
NetworkPingDisplay
now has configurable size.Added:
NetworkManager.GetStartPosition
is now virtual so it can be overridden.Added: Network Manager now has an Auto Connect option for headless clients / CCU testing.
Added:
NetworkConnection
now maintainsowned
HashSet on both server and client.Added:
NetworkBehaviour
now hasSyncDirection
to 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:
NetworkBehaviour
logging was improved.Fixed:
SimpleWebTransport
header 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
ClientDisconnect
now callsDisconnect
event correctly.Fixed
NetworkServer.Spawn
now checks and warns for duplicates.Fixed:
NetworkIdentity
now only checksApplication.isPlaying
in Editor context.Fixed: Network Statistics properties made public so other components can access them.
Fixed:
InterestManagement.Awake
is nowprotected virtual
so it can be overridden.Fixed:
NetworkIdentity
serialization ofcomponentIndex
reduced to ~1 bit instead of 1 byte.Fixed:
NetworkBehaviour
serialization of headers reduced to 1 byte instead of 4 bytes.Fixed:
NetworkClient
now resets time interpolation whenever host connects or reconnects.Changed:
NetworkBehaviour.ComponentIndex
reduced fromint
tobyte
.Changed: Snapshot Interpolation refactored to version 2.
Changed: Latency Simulator
latencySpike
renamed 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
/NetworkBehaviour
OnSerialize
no longer returns abool
.Breaking:
NetworkBehaviour.SerializeSyncVars
no longer returns abool
.Breaking:
assetId
inSpawnMessage
changed fromGuid
touint
.Breaking:
OnError(Exception)
is nowOnError(TransportError, string)
whereTransportError
is an enum and string is free text provided by transports.Breaking:
NTSnapshot
renamed toTransformSnapshot
for clarity.Breaking:
NetworkTime
was rewritten to useNetworkClient
's snapshot interpolation timeline.Obsolete:
NetworkManager.serverTickRate
renamed tosendRate
.Obsolete:
NetworkManager.serverTickinterval
was moved toNetworkServer
.Obsolete:
NetworkTransport.activeTransport
renamed toactive
.Obsolete:
NetworkBehavior.hasAuthority
renamed to isOwned for clarity.Obsolete:
NetworkConnection.clientOwnedObjects
renamed toowned
for clarity.
v67.1.0 -- 2022-May-05
Fixed: KCP updated to version 1.19.
Fixed: Team Interest Mgmt
OnDestroyed
logic 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:
Texture2D
now includes dimensions and readsColor32
correctly and supports nulls.Fixed:
NetworkServer.SendToObservers
now correctly usesNetworkConnectionToClient
.Fixed:
NetworkClient
now checks and warns for duplicate scene ID.Changed:
NetworkClient
/NetworkServer
OnError
renamed toOnTransportError
for 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.TryDequeue
extension added for Unity 2019 & 2020 compatibility.Fixed:
NetworkClient.ChangeOwner
now usesisLocalPlayer
flag to check ifOnStopLocalPlayer
should be called.Fixed:
ReadNetworkBehavior
now correctly reads data on client even if the associateNetworkIdentity
is missing from the client.Fixed:
NetworkClient.SpawnPrefab
now correctly looks for custom spawn handlers before using registered prefabs list instead of after.Fixed:
NetworkWriterExtensions
now usesWriteArray
instead ofWrite
.Fixed: Attempting to serialize prefabs and not-spawned game objects throws a more obvious exception.
Fixed:
DestroyAllClientObjects
now also resets after unspawn handler called.Fixed: Calling
StopClient
in Host mode no longer resetsnextNetId
.Fixed: Calling
StopClient
in 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:
AggressiveInlining
attribute added in many places to improve performance.Changed:
NetworkWriter
/NetworkReader
API simplified.Changed:
PooledNetworkReader
/PooledNetworkWriter
renamed 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
OnStopLocalPlayer
virtual method, invoked right beforeOnStopClient
. Script Template has also been updated.Added: Network Manager Template overrides
singleton
to 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:
NetworkTransformChild
now correctly syncs initial state when spawned.Fixed: Latency Simulation now uses
Time.unscaledTime
.Fixed:
SimpleWebsocketTransport
has 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
NetworkConnectionToClient
instead ofNetworkConnection
.Changed:
RemoteCallHelper
renamed toRemoteProcedureCalls
.Changed:
CmdDelegate
renamed toRemoteCallDelegate
.Changed:
MirrorInvokeType
renamed toRemoteCallType
.Changed:
NetworkManager.clientLoadedScene
is nowprotected
.Obsolete:
NetworkTransform
now has overloads forCmdTeleport
/RpcTeleport
with Quaternion rotation, deprecating separateCmdTeleportAndRotate
/RpcTeleportAndRotate
methods, 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
NetworkTransform
CmdTeleport
/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:
ReplacePlayerForConnection
now correctly updatesisLocalPlayer
flag.Fixed:
OnStopClient
no longer called twice in certain cases.Fixed:
NetworkServer
now checks foractive
before 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
HashSet
of connections pending disconnect.Fixed:
NetworkTransform
now checks for ready client before sending updates to server.Fixed:
OnStartLocalPlayer
now correctly called again afterRemovePlayerForConnection
followed byAddPlayerForConnection
with the same player object.Changed:
NetworkMatch
moved toInterestManagement/Match
folder.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
ConfigureServerFrameRate
UseConfigureHeadlessFrameRate
instead.Breaking: Removed obsolete
PersistNetworkManagerToOfflineScene
.Breaking:
NetworkAuthenticator
OnClientAuthenticated
event no longer needs a NetworkConnection parameter.Obsolete: OnClient* virtual methods in Network Manager no longer take a
NetworkConnection
parameter.Obsolete: Network Room Manager client overrides no longer have
NetworkConnection
parameter. UseNetworkClient.connection
in your overrides instead.
Last updated