perf: Grid2D initial capacity to avoid warmup allocations
perf: NetworkWriter.WriteString now writes directly into the buffer without the intermediate stringBuffer step
perf: NetworkIdentity.assetId is now cached to avoid expensive "new GUID" construction
breaking: perf: assetId as uint instead of Guid. saves 12 bytes and much conversion magic (as suggested by james). may need to resave prefabs once in case of spawn issues.
breaking: perf: NetworkIdentity/NetworkBehaviour OnSerialize return type changed from bool to void to a-void confusion (and branches)
NetworkManager: auto connect client build option for CCU test bots
fix: InterestManagement.Awake is now protected virtual (#3214)
feature: NetworkWriter.Capacity
feature: NetworkWriter.ToString in form of "[DD-CC-BB-AA-FF @ 5/1000]"
feature: NetworkWriter implicit ArraySegment conversion for convenience.
also allows for implicit NetworkWriter to NetworkReader conversion.
feature: AccurateInterval from Mirror II to prepare for proper RemoteStatistics measurements & snapshot time interpolation, which requires accurate send interval even if .targetFrameRate can't be set (i.e. in host)
perf: NetworkServer: Broadcast() now only runs every tickInterval, even if Application.targetFrameRate isn't set in host mode.
previously a host may run at 120 Hz, and even with tickInterval set to 10 Hz, Broadcast() would run 120 times per second, checking every component's dirty bits + send interval.
perf: new NetworkTime based on the new global NetworkClient time snapshot interpolation: significantly more accurate, especially in the first few seconds
fix: LatencySimulation now uses Time.unscaledTimeAsDouble for long running server precision
fix: LatencySimulation now flushes properly. fixes barely any packets getting through even on 0 settings
perf: all client NetworkTransforms now run on the same NetorkClient.timeline instead of each component computing its own
perf: NetworkIdentity.Serialize bandwidth reduced from 1 byte per component index to (roughly) 1 bit per component (#3228)
perf: NetworkBehaviour.Serialize safety check reduced from 4 bytes length header to 1 byte length hash, while keeping error correction (#3229)
fix: Unity 2019, 2020 support added again (#3230)
breaking: .hasAuthority renamed to .isOwned because it's easier to understand, and to prepare for SyncDirection where there is a difference between: (#3231)
breaking: NetworkConnectionToServer.clientOwnedObjects renamed to .owned (simplify API)
feature: NetworkConnection.owned objects are now available on server AND on client
fix: #3234 assetId setter now allows overwriting an old assetId after duplicating a prefab.
feature: NetworkWriter.WriteBytes(byte*) unsafe version
feature: SyncDirection to easily support client auth components without extra Rpcs/Cmds. previously OnSerialize was only server-to-client direction. (#3244)
feature: perf: NetworkConnectionToClient snapshot interpolated .remoteTimeline to simplify NetworkTransform (#3247)
feature: NetworkBehaviour.SetDirty() to trigger custom OnSerialize without having to call SetSyncVarDirtyBit(1). prepares for NetworkTransform v3. (#3248)
perf: breaking: NetworkTransformChild replaced by NetworkTransform with exposed .target. no more virtual property call. and no more redundant components which do the exact same thing. (#3249)
breaking: NetworkTransform.clientAuthority flag obsoleted. use SyncDirection instead. automatically sets syncDirection if still used. (#3250)
perf: NetworkBehaviour.IsDirty: check bits before time
fix: NetworkTransform now always sends at the same sendInterval as time interpolation. as configured in NetworkManager.
fix: NetworkLerpRigidbody now uses double time to keep precision over multiple days
fix: NetworkRigidbody now uses double time to keep precision over multiple days
fix: NetworkDiscovery BroadcastAddress exposed for iOS support (#3255)
feature: manual DeltaCompression to prepare for NetworkTransform V3