手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

Unity Shader教程之 Tiling重复平铺效果的实现

时间:2024-10-25 22:42:02

1、打开Unity,新建一个工程,在场景中添加一个Plane,调整好观察角度,具体如下图

Unity Shader教程之 Tiling重复平铺效果的实现
Unity Shader教程之 Tiling重复平铺效果的实现

2、导入一张贴图,注意图片的 Wrap Mode 为 Repeat ,具体如下图

Unity Shader教程之 Tiling重复平铺效果的实现

3、在工程中新建一个 Shader,可以命名为 TilingShader,双击打开进行编辑,具体如下图

Unity Shader教程之 Tiling重复平铺效果的实现
Unity Shader教程之 Tiling重复平铺效果的实现

4、脚本编译正确,回到Unity,在工程中新建一个材质,可以命名为 TilingMaterial,把 Shader 通道设置为刚才新建的 Shader,然后把贴图设置上,把材质香崔阋琦赋给 Plane,具体效果如下图

Unity Shader教程之 Tiling重复平铺效果的实现
Unity Shader教程之 Tiling重复平铺效果的实现

5、把 Plane 的大小调整一下,具体下过如下图

Unity Shader教程之 Tiling重复平铺效果的实现
Unity Shader教程之 Tiling重复平铺效果的实现

6、修改材质的 Tiling,但是此时没有任何变化,具体如下图

Unity Shader教程之 Tiling重复平铺效果的实现
Unity Shader教程之 Tiling重复平铺效果的实现

7、双击 TilingShader 编辑,修改添加代码如下图

Unity Shader教程之 Tiling重复平铺效果的实现

8、TilingShader 脚本的具体内容如下:Shader"Cu衡痕贤伎stom/TilingShader"{ Properties { _Color("Color",Color)=(1,1,1,1) _MainTex("MainTexture",2D)="white"{} } SubShader { tags{"Queue"="Transparent""RenderType"="Transparent""IgnoreProjector"="True"} BlendSrcAlphaOneMinusSrcAlpha Pass { CGPROGRAM #pragmavertexvert #pragmafragmentfrag #include"UnityCG.cginc" float4_Color; sampler2D_MainTex; structv2f { float4pos:POSITION; float2uv:TEXCOORD0; };float4_MainTex_ST; v2fvert(appdata_basev) { v2fo; o.pos=UnityObjectToClipPos(v.vertex); o.uv=v.texcoord.xy; o.uv=TRANSFORM_TEX(v.texcoord,_MainTex); returno; } half4frag(v2fi):COLOR { half4c=tex2D(_MainTex,i.uv.xy)*_Color; returnc; } ENDCG } }}

9、脚本编译正确,回到Unity,再次调整材质的 Tiling 相关值,对应效果就会发上变化,最终效果如下图

Unity Shader教程之 Tiling重复平铺效果的实现
Unity Shader教程之 Tiling重复平铺效果的实现
© 手抄报圈