エフェクトとか作ってると頂点単位で色が変えたくなりますよね。
VertexColor.shader
Shader "Custom/VertexColor" {
SubShader {
CGPROGRAM
#pragma surface surf Lambert
struct Input {
float4 color : COLOR;
};
void surf(Input IN, inout SurfaceOutput o) {
o.Albedo = IN.color.rgb;
}
ENDCG
}
}
ポイント:
- サーフェースシェーダーを使う
-
Input
構造体にCOLOR
を指定すると頂点カラーが渡ってくる - あとはお好みで加工して
SurfaceOutput
に渡しましょう