NetworkTransform UseUnreliableDeltas incompatible with certain owner-authoritative enhancements
Description
When you have owner authoritative NetworkTransforms and are using re-parenting when your avatar is stepping on and off platforms, I notice that certain bugs that had been fixed come back.
Netcode 1.x for a long time had issues with owner authoritative player NetworkTransforms and re-parenting with local space and interpolation where there would be hiccups in the player position as they changed parents stepping on/off platforms and the local space interpolation data was incoming.
The following settings seemed to eliminate this kind of problem in Netcode 2.x:
NetworkTransform.SwitchTransformSpaceWhenParented = true NetworkObject.SyncOwnerTransformWhenParented = false
However, if you enable UseUnreliableDeltas then the problem returns. I suspect this is because the out-of-order local space coordinate UDP packets are being applied immediately while the parent is not yet in sync between clients.
Environment
- OS: Windows 11
- Unity Version: 6000.1.3f1
- Netcode Version: 2.4.2
- Netcode Topology: Client-Server
@zachstronaut I am just going to get this one into our system as it looks like the m_HalfPositionState might not be getting updated correctly. Until this is resolved, I would definitely recommend not using half floats when letting the NetworkTransform handle the world to local or vice versa conversion (which also updates the interpolators pending queue). Very likely the m_HalfPositionState just needs to be recalculated.