Vixen
dd8b0a81
csharp
public sealed class NetworkTransformApplySystem

Copies 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

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 Access

    What this system reads and writes.

  • public ReplicationClient? Client

    The client whose id-to-entity map names the frames. Optional; without it there are none.

  • public long AppliedCount

    How many transforms have been applied.

  • public long UnresolvedFrameCount

    How many times a transform was held because the frame it is quoted in is not here yet.

  • public long ReparentedCount

    How many times an entity has been moved into or out of a replicated frame.

Methods (2)

Used by (2)

  • NetworkTransformBridgeTestsVixen.Net.Engine.Tests
  • NetworkTransformInterpolateSystemVixen.Net.Engine