I have an equirectangular texture applied as the environment. I go to the camera view, match the camera's settings and create my mesh so it somewhat matches the objects' shapes in that texture. I unwrap the mesh.
I deliberately avoid such methods like cutting an image into small pieces and then manually texturing the objects. It's really tedious and time consuming and I have to do tens of these images. Also, the projection, as I've mentioned, is equirectangular, so doing it manually is really not an option.
How do I project the pixels from that env. texture onto my mesh? (like a slide projector)
One cheap and fast way of doing it is to use The unwrap option "Project from view" Like in this Picture:
This uses your current 3D viewport as to unwrap it 1to1 into the UV image editor. If you align your camera just right it behaves like a Projected Image. I recommend to do this in the orthographic 3D view as well.
There are two ways I know of:
Version a: If you want it to look like it actually is projected from a slide projector, you can actually put textures on area lamps or spotlights. The lightsource will project the image onto the surface like you would expect it would from a projector:
Version b: If instead you want to add graffitti, you would actually combine two UV mappings. One would be for the texture proper, and the other would be for the graffitti. This video explains the technique in a myriad of ways: