How do you draw a mesh path at run time on an arbitrary surface - similar to this demo, but during runtime.
Supposing you have a predetermined path (on a 2d surface) - what is the best way to project it to the arbitrary surface?
Are there methods better than raycasting?
You do it the same way you do it in the editor. You move each vertex down until it hits something then you leave it (You probably place it slightly above the terrain so there is no z-fighting). How you do that depends on you. I don't know how they did it, since it was a terrain, the most efficient way would probably be to get the interpolated height at the vertex of the path and drop it to that point.
You could also try using Raycasting. The fact that your path is flat won't help this method much because there is still a non-uniform distance to the surface, and it is an expensive method to call and if you have many verts, it would slow down performance considerably during the frame that you call it.
If your looking for an easy way, just use a projector and project the path downward. It will line up perfectly with the ground, but you have to redraw everything the the projector shines on so it will add some more draw calls.