I did notice that shrinkwrapping required a slightly higher offset, though I wonder how noticeable it would really be. I hadn’t noticed that the UV Project method projected straight through the mesh, which is obviously a downside if your object can be viewed from all sides. Initially your method seemed like quite a few steps to me, and I’m unfortunately not experienced enough to start cobbling a quick python script to automate this for me, but it could become quite fast.
I’m just a bit surprised that decals require so many steps and are so relatively unflexible. In UE4 for example you can create a simple bounding box that can project (in different ways) an entire material onto everything within those bounds, and can even interact with the material it’s being projected onto.
In this way, you never need to fiddle with all your materials and objects separately. I love Blender, but I do find it a tad odd I have to start messing with booleans in order to get some basic decals into my object / environment.
Thanks for the quick response!
Edit
I’m also currently checking out an addon called DecalMachine to see how it functions, but it looks promising.