フラグメントシェーダーを使ってオブジェクトの色をテクスチャ座標をつかって算出します。
全文
Shader "Custom/UvColor" { Properties { _MainTex("Texture", 2D) = "white" {} } SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD; }; struct v2f { float4 vertex : SV_POSITION; float2 uv : TEXCOORD; }; float4 _MainTex_ST; v2f vert(appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.uv = TRANSFORM_TEX(v.uv, _MainTex); return o; } fixed4 frag(v2f i) : SV_Target { return fixed4(i.uv.x, i.uv.y, 0, 1); } ENDCG } } }
フラグメントシェーダ
fixed4 frag(v2f i) : SV_Target { return fixed4(i.uv.x, i.uv.y, 0, 1); }
頂点シェーダから取得した TEXCOORD
はテクスチャ座標を表しているので、その値をそのまま色に当てはめている。