public struct PhysicsTeleportMarks an entity whose transform was moved by something other than physics, so the bridge pushes it into the body instead of reading it back.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
Teleporting is the one case the change-version machinery cannot decide on its own. The bridge writes LocalTransform every step for every dynamic body, so "the transform changed since I last looked" is true every step and says nothing about who changed it. This tag is the answer: game code that sets a transform directly adds it, the bridge acts on it and removes it.
A kinematic body does not need this — its transform is authored by definition, and the bridge drives it towards LocalTransform every step.
⚠ It is also what stops the body being drawn sliding there. PhysicsInterpolation holds the last two simulated poses and a teleport makes those two the two ends of the jump, so PhysicsScene.Arrive puts both of them on the destination. Without it a teleported body crossed the level over the following step, and on a frame one fixed step long it was drawn at the position it had just left.
⚠ Which is why this is a tag and not a distance the bridge could measure. A body genuinely moving at two hundred metres a second covers the same gap in a step; any threshold that catches one catches the other. Only the caller knows.
A character does not need it, and now consumes it anyway. Writing a character's LocalTransform is the teleport — PhysicsScene.Adopt is what makes that true — so the tag adds nothing to the ordinary case. What it does add is certainty in the one case Adopt is unsure about: a teleport that lands exactly where the smoothing last drew the character is indistinguishable from the smoothing's own write, and is refused without it.
⚠ It used to be inert there, which meant it stayed on for ever. The bridge acts on this while walking the entities that have a PhysicsBody, and a character has a CharacterBody instead — so a tag put on one was neither read nor taken off again, and every consumer that treats it as an event rather than a state then fired on every tick: NetworkRigidBodyCaptureSystem re-adds NetworkTeleport, the transform bridge bumps NetworkTransform.TeleportCount, and a receiver refuses to interpolate that entity again. PhysicsScene.StepCharacters takes it off.
Used by (9)
- CharacterMovementSystemVixen.Physics
- CharacterSceneTestsVixen.Physics.Tests
- NetworkRigidBodyCaptureSystemVixen.Net.Physics
- NetworkRigidBodyCorrectionSystemVixen.Net.Physics
- NetworkRigidBodyTestsVixen.Net.Physics.Tests
- PhysicsSceneVixen.Physics
- PhysicsSceneComponentTestsVixen.Physics.Tests
- PhysicsSceneTestsVixen.Physics.Tests
- PhysicsSyncSystemVixen.Physics