养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

Unity Shader教程之 旗帜飘扬效果的简单实现

时间:2024-11-01 12:31:37

UnityShader教程之旗帜飘扬效果的简单实现。本节介绍,在Unity开发中,实现旗帜飘扬的简单效果的方法,具体如下

Unity Shader教程之 旗帜飘扬效果的简单实现

工具/原料

Unity

方法/步骤

1、打开Unity,新建一个工程,具体如下图

Unity Shader教程之 旗帜飘扬效果的简单实现

2、在工程中添加一个GameObject空物体命名为Flag,在Flag下面添加咯悝滩镞Sphere、Cylinder和Plane,然后适当布局,效果如下图

Unity Shader教程之 旗帜飘扬效果的简单实现

3、任意找一张图片作为前面导焯拜芪恨入,并在工程中新建两个材质Material,Grey带金属光泽的材质球赋给Sphere和Cylinder,具体如下图

Unity Shader教程之 旗帜飘扬效果的简单实现

Unity Shader教程之 旗帜飘扬效果的简单实现

4、在工程中新建一个Shader脚本,命名为Flag,然后双击打开脚本进行编辑,具体如下图

Unity Shader教程之 旗帜飘扬效果的简单实现

5、Flag脚本具体代码如下图

Unity Shader教程之 旗帜飘扬效果的简单实现

Unity Shader教程之 旗帜飘扬效果的简单实现

6、Flag脚本具体内容如下:Shader&q掼鸿乡羰uot;Custom/Flag"{Properties{_Main皈其拄攥Tex("MainTex",2D)="White"{}_MainColor("MainColor",color)=(1,1,1,1)_ScaleX("ScaleX",float)=1_ScaleZ("ScaleZ",float)=1_Slant("Slant",Range(0,3))=1_SpeedX("Speed",float)=1_SpeedZ("Speed",float)=1}SubShader{pass{CulloffCGPROGRAM#pragmavertexvert#pragmafragmentfrag#include"UnityCG.cginc"structv2f{float4pos:POSITION;float2uv:TEXCOORD0;};sampler2D_MainTex;float4_MainTex_ST;fixed4_MainColor;float_ScaleX;float_ScaleZ;float_SpeedX;float_SpeedZ;float_Slant;v2fvert(appdata_basev){v2fo;floatx=(1-(v.vertex.x+5)/10);v.vertex.y+=_ScaleX*x*sin(v.vertex.x+_Time.z*_SpeedX);v.vertex.y+=_ScaleZ*x*sin(v.vertex.z+_Time.y*_SpeedZ);v.vertex.z+=_Slant*x;o.pos=UnityObjectToClipPos(v.vertex);o.uv=TRANSFORM_TEX(v.texcoord,_MainTex);returno;}fixed4frag(v2fi):COLOR{fixed4color=tex2D(_MainTex,i.uv);returncolor;}ENDCG}}}

7、脚本编译正确,回到unity,把材质Flag的Shader设置为Flag,把导入的贴图添加上,最后把材质赋给场景中的Plane,具体如下图

Unity Shader教程之 旗帜飘扬效果的简单实现

Unity Shader教程之 旗帜飘扬效果的简单实现

8、运行场景,旗帜飘扬的效果就实现了,具体如下图

Unity Shader教程之 旗帜飘扬效果的简单实现

© 一点知识