How to spawn tiles in 3d endless runner with moving world?

I am currently making infinity runner where i pan 3d world under static player character.
I made collision box in the mid of tile and set spawning at X location where X is length of tile - mid point where collision box. The problem is sometimes there is gap between tiles and this happens randomly. it seems that setting X location is not correct way to do this.
Can someone suggest how to spawn seamless tiles when moving world under the character?

I think that problem is in collision detection. Sometimes overlap event fires later than you expect, and next tile appear a little bit further than it should.

But if you know lenght of each type of tile, and world movement velocity, you don’t need any colision boxes at all. You can spawn next tiles by time delay calculated by tile_lenght/world_velocity.

Another way to fix that is add some additional mesh over this seams, to hide them.