2022 Change Log
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.
v69.0.0 -- 2022-Nov-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
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