public sealed class NetworkTransformApplySystemCopies what the network received into the engine's transform.
No guide page documents this yet — the page shows what the code says about itself.
As a system
- Phase
- FixedUpdate
- Writes
- LocalTransform
Remarks
The client half of NetworkTransformCaptureSystem. Runs on a peer that receives transforms rather than publishing them, and it is the only thing that should be writing those entities' transforms — see that type's remarks for what happens when both directions run at once.
⚠ This is the unsmoothed path, and on its own it is meant to be. The received pose goes straight into LocalTransform with no buffering and no interpolation delay, so an object moves in the steps the snapshot rate delivers — at 20 Hz on a 60 Hz display, three frames of stillness and one jump. That is the right default for a listen-server peer, a headless client, an editor preview and anything whose transform is read rather than drawn, and it is the wrong one for a game. NetworkTransformInterpolateSystem is the other half: added beside this one it keeps a SnapshotBuffer per NetworkId and overwrites the placement with the pose at the clock's interpolation tick. The two compose rather than compete — this one resolves the frames and places what the other has nothing to say about.
Scale is deliberately not touched. NetworkTransform carries a position and a rotation and no scale, because scale changes rarely and belongs in a [Replicated] component of the game's own when it changes at all — putting it on the wire for every object every tick to serve the few that resize is the trade doc 16 makes for the position too, in the other direction. A local scale set by a prefab therefore survives, which is what anyone would expect.
Fields and properties (5)
public SystemAccess AccessWhat this system reads and writes.
public ReplicationClient? ClientThe client whose id-to-entity map names the frames. Optional; without it there are none.
public long AppliedCountHow many transforms have been applied.
public long UnresolvedFrameCountHow many times a transform was held because the frame it is quoted in is not here yet.
public long ReparentedCountHow many times an entity has been moved into or out of a replicated frame.
Methods (2)
public override JobHandle Update(in SystemContext context, JobHandle dependency)Runs the system.
public void Apply(World world)Applies every transform that arrived, and no others.
Used by (2)
- NetworkTransformBridgeTestsVixen.Net.Engine.Tests
- NetworkTransformInterpolateSystemVixen.Net.Engine