Quick answer: Spawn block needs Velocity input. Compute as Position - PreviousPosition each frame. Set Rate Per Unit ~10 for trails.

Trail effect attached to a player. Player runs. Trail empty. Spawn Over Distance is reading zero velocity because the emitter is local to the player.

The Fix

VFX Graph:
  Spawn Context:
    Spawn Over Distance:
      Rate Per Unit:        10
      Velocity:              [Vector3 input from C#]

C# driver:
  Vector3 _prev;
  void Update() {
    Vector3 v = (transform.position - _prev) / Time.deltaTime;
    vfx.SetVector3("Velocity", v);
    _prev = transform.position;
  }

Or use VFX Property Binder (Position component) which auto-computes per-frame movement.

Verifying

Move emitter. Particles spawn at Rate Per Unit per meter. Stop moving: emission stops. Resume: continues.

“Velocity wired. Distance accumulates. Trail emits.”

Related Issues

For VFX particle strip, see strip collapse. For VFX mesh flat, see flat shading.

Velocity in. Distance flows. Trail draws.