Here's a snippet from my CG shader:

v2f vert (appdata_tan v) { v2f o; o.pos = mul (UNITY_MATRIX_MVP, v.vertex); float3 binormal = cross( v.normal, v.tangent.xyz ) * v.tangent.w; float3x3 rotation = float3x3( v.tangent.xyz, binormal, v.normal ); o.viewDir = mul (rotation, ObjSpaceViewDir(v.vertex)); } fixed4 frag (v2f i) : COLOR { half3 refl = reflect( normalize(i.viewDir), half3(0.0, 1.0, 0.0) ); refl.x = -refl.x; texcol.rgb = texCUBE( _Cube , refl ).rgb; return texcol; }