I've made a shader for a racing game in Unity that billboards a headlight glow effect (the lights are not actually light sources so I can't use lens flares). The quad with the glow texture is rotated to always face the camera but attenuated by the angle between the original normal and view direction so it only appears when facing the camera. I noticed when viewing from an angle that parts of the billboard were being occluded by the car so I set it to 'ZTest Always' to prevent this.
This all works fine, except there's a part where new cars are delivered by truck, and the lights are glowing through the truck door before it opens :-(
I tried re-enabling Z-testing and manually tweaking depth in the vertex shader after the MVP matrix multiply, but can't find a sweet spot that doesn't cause either one problem or the other at some point.
So I'm wondering if there's some way to have a moving occluder for occlusion culling in Unity. This way I could have the billboard occluded by the door until the point that it opens. The docs mention 'occlusion areas' for dynamic objects but this seems to refer to moving objects being occluded by static geometry, I'm not sure if it works the other way round.
Otherwise I guess it will have to be some kind of animation script that activates the lights at the exact moment the door opens...
EDIT - this sort of thing