模型随机晃动shader
时间: 2023-08-12 14:09:27 浏览: 47
你可以使用以下代码来实现模型随机晃动的shader效果:
```
Shader "Custom/Shake" {
Properties {
_MainTex ("Texture", 2D) = "white" {}
_Amplitude ("Amplitude", Range(0.0, 1.0)) = 0.1
_Speed ("Speed", Range(0.0, 10.0)) = 1.0
}
SubShader {
Tags { "Queue"="Transparent" "RenderType"="Transparent" }
LOD 100
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
uniform sampler2D _MainTex;
uniform float _Amplitude;
uniform float _Speed;
float2 _Time;
struct appdata {
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f {
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
v2f vert (appdata v) {
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
return o;
}
fixed4 frag (v2f i) : SV_Target {
float2 uv = i.uv + _Amplitude * sin(_Time.y * _Speed + i.uv);
fixed4 col = tex2D(_MainTex, uv);
return col;
}
ENDCG
}
}
}
```
这是一个基本的shader,其中 `_Amplitude` 和 `_Speed` 参数可以控制振幅和速度。你可以将这个shader应用到你的模型上,然后调整参数来达到你想要的随机晃动效果。记得将 `_MainTex` 替换成你想要应用的纹理。