title: Can vertex alpha be set for a surface shader appdata input?
body: <p>My shader does some math to determine vertex alpha, so I've got a function to do that before the data gets passed into my surf function.</p>
  
  <pre><code>    #pragma surface surf Standard alpha
      #pragma target 3.0
  
      struct Input
      {
          float2 uv_MainTex;
          float tranparency;
      };
  
      void foo(inout appdata_full v, out Input o) {
          UNITY_INITIALIZE_OUTPUT(Input, o);
          float someAlpha;
          [...some maths to create someAlpha value...]
          v.color.a = someAlpha;
          o.transparency = v.color.a;
      }
  
      half _Glossiness;
      half _Metallic;
      fixed4 _Color;
  
      UNITY_INSTANCING_BUFFER_START(Props)
      UNITY_INSTANCING_BUFFER_END(Props)
  
      void surf (Input IN, inout SurfaceOutputStandard o)
      {
          fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
          o.Albedo = c.rgb;
          o.Metallic = _Metallic;
          o.Smoothness = _Glossiness;
          o.Alpha = c.a;
      }
  </code></pre>
  
  <p>Then when I use Input IN I want someAlpha to be reflected when the alpha is set:</p>
  
  <pre><code>o.Alpha = c.a; //Can I do c.a * IN.transparency ?
  </code></pre>
  
  <p>Currently, absolutely nothing happens.  How can I use the alpha value I want in surf?</p>