81.0.0 (2023-07-09)
Bug Fixes
- #3525 by explaining the solution in the Error message. (acf67dd)
- #3538 calling unspawn on scene objects in DestroyOwnedObjects (#3542) (08fa026)
- 2019 tests work again (#3547) (39211f9)
- Batching VarInt size header added to fix custom serializated NetworkMessages with size mismatch corrupting the next message in a batch (#3516) (13fd721)
- NetworkBehaviour OnValidate #ifdef adjusted for Unity 2020.3.19 support (629e50e)
- NetworkClient TimeInterpolation: add 'current' bufferTimeMultiplier field to not overwrite the initial SnapshotSettings.bufferTimeMultiplier. Allows us to reset bufferTimeMultiplier in InitTimeInterpolation and prepares for ConnectionQuality. (c599fb6)
- PrepareToSpawnSceneObjects checks netId instead of activeSelf [fixes: #3541] (#3543) (51c7162)
- SnapshotInterpolation.Insert() now has a bufferLimit to avoid ever growing snapshot buffers on extremely low-fps clients (37bbd7e)
- tests work on Unity 2022.2+ [imer] (d1719c1)
- Weaver now weaves NetworkBehavious in nested type definitions (#3524) (6fb0b33)
- Weaver SyncVarAttributeAccessReplacer now detects modifying [SyncVar] in another assembly and logs an error, instead of silently failing at runtime (#3525) (2b6212b)
Performance Improvements
- NetworkTransformBase SortedLists now allocate with a default capacity to avoid early resizing & allocations (60936f0)
- Weaver ILPostProcessorAssemblyResolver FindFile caches exeName, dllName for ~0.1ms speedup per call (443d154)
- Weaver ILPostProcessorAssemblyResolver FindFile searches dllname / exename in one iteration & without Linq (eb33dfd)
- Weaver ILPostProcessorAssemblyResolver uses ConcurrentDictionary to avoid multithreading locks (c6be031)