How to set up additive blending on a surface shader?

So, in a normal shader I have the line:

Blend SrcAlpha One

And that gives me additive blending of the sort I want. It works with transparency, and so on. However, when I use a surface shader this line does literally nothing. I take it that the CGPROGRAM section overrides the blend specifications and such above it. How do I do the equivalent thing in my surface shader?

I did try decal:add on the #pragma surface line, and that was additive blending in some respects, but it also destroyed the alpha blending so that’s definitely not what I want.

Ah-ha! I figured it out…

So apparently when you do not use the “alpha”, “decal:add”, or “decal:blend” tags, the blending mode is defined by the old-style Blend settings.

So in short, don’t use those tags, and, in your case, use “Blend SrcAlpha One” instead.

Did you try adding “alpha” or “alphatest:_Cutoff” in the pragma line? Curious if that would help.