主要介绍函数_Object2World,在shader中将立方体的顶点,变换到世界坐标。
Shader "xxx/ddd" { SubShader { pass { CGPROGRAM #pragma vertex vert //顶点函数的重命名 #pragma fragment frag //片段函数的重命名 #include "unitycg.cginc" //数据结构 struct v2f { float4 pos:POSITION; fixed4 color:COLOR; }; v2f vert(appdata_base v) { v2f o; o.pos = mul(UNITY_MATRIX_MVP,v.vertex); float4 wpos = mul(_Object2World,v.vertex); //转换为世界坐标 if(wpos.x>0) //x>0红色 { o.color = fixed4(1,0,0,1); } else //否则为绿色 { o.color = fixed4(0,1,0,1); } return o; } fixed4 frag(v2f indata):COLOR { return indata.color; } ENDCG } } }运行程序,移动cube位置,可以看到颜色发生变化。