2021 Change Log
Last updated
Last updated
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.
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.
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
/OnStopServer
properly.
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
.
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.
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.
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.
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.
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.
Added: Batching support for server messages - See Network Manager to enable.
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.
Added: updated to version 1.7.
Added: .
Added: are back in the package -- See the new Mirror section in the Assets > Create menu.