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.
v96.0.1 -- 2025-Feb-27
Added
Hex Spatial Hash Interest Management 2D and 3D (docs coming soon).
Network Manager now has a Clear button for spawnable prefabs.
Scene Distance Interest Management (combines Scene and Distance IM's).
Interest Management SetHostVisibility now handles terrains with tree details, lights, audio sources, and particle systems correctly.
NetworkTransform now exposes
velocity
andangularVelocity
on the receiving side.Encryption Transport now logs hardware accelleration status.
PlayerControllerRB in example controllers: uses non-kinematic rigidbody instead of Character Controller.
Vector4Long implemented for quarternions delta compression.
Half Floats for Quaternion compression.
Entering play mode while in prefab edit mode works now.
HashSet is now supported in SyncVar / Command / ClientRpc / TargetRpc / NetworkMessage.
NetworkIdentity.OnDestroy verifies spawned[netId] before removing.
NetworkTransformHybrid that emits Reliable full state on a slow interval and Unreliable deltas in between.
PlayerTest example now has PlayerContollerHybrid prefab for testing.
PickupsDropsChilds example now has interface implemented to show how that should be done.
HashSet is now a supported type for SyncVar / Cmd / Rpc.
HalfFloats added to Compression.
Fixes
NetworkClient now defers spawn payload until after all objects have been created, eliminating many common race conditions.
Fixed bug in 96.0.1 for missing message.payload.count check.
Reader / Writer Processor now works across assemblies.
Simple Web Transport jslib improved to support more platforms.
Network Manager StopClient no longer calls OnClientDisconnectInternal (Transport calls it).
NetworkServer now correctly calls NetworkClient.InvokeUnSpawnHandler from UnSpawnInternal
NetworkAnimator no longer double calls HandleAnimSetTrigger / HandleAnimResetTrigger on host client.
NetworkTransform now calls Physics.SyncTransforms in ResetState, which is called from OnTeleport, making it easier to teleport without special handling for character controllers and non-kinematic rigidbodies that would resist being repositioned.
NetworkTransform now supports FixedUpdate, so non-kinematic rigidbody players don't stutter.
All forms of Interest Management now use LateUpdate.
Netgraph improvements.
Examples updated.
Edgegap Plugin updated to 2.3.1.
Encryption Transport now implements Port Transport.
Network Server now checks
listen
and rejects connections if not listening.KCP handles nulls in OnClientError during shutdown better now.
Room and Multiple Additive Scene examples now demonstrate Pooling (See Spawner and Reward scripts).
Portal script in Additive Levels example now properly waits for RemovePlayerForConnection to complete.
PredictionUtils now correctly sets freeze rotation before constraints.
Entering playmode when in prefab edit mode is no longer prevented (now it works).
Changes
NetworkClient, for initial spawning, now defers applying spawn payload until after instantiating all networked objects and adding them into the
spawned
dictionary. This means SyncVars and Sync* collections that cross-reference other networked objects should be much more robust, as the long-standing race condition should now be eliminated.Network Server
dontListen
renamed tolisten
to eliminate double negative bool.Moved connectionId to NetworkConnectionToClient (it's meaningless on clients).
Deprecated Network Manager's virtual OnApplicationQuit - Use OnDestroy instead.
Deprecated Transport's virtual OnApplicationQuit - Use OnDestroy instead.
Deprecated Snapshot interpolation settings in Network Client in favor of SnapShotSettings.
Bouncy Castle moved to Encryption Transport folder.
Last updated