如何在Unity3D中制作波浪效果

如何在Unity3D中制作波浪效果,unity3d,Unity3d,在游戏《超级路易吉银河》中,当玩家掉进冷水中时,屏幕会晃动。有没有一种可能的方法在统一中实现这种效果 效果如下所示: 我不知道这个效果的名称,很抱歉我没有提供详细信息。很抱歉我太愚蠢了 1) 添加新的着色器、材质和C#脚本 2) 脚本编写 着色器(添加到底部,并删除颜色反转): C#: 3) 将C#脚本附加到摄影机,将着色器附加到材质,然后将材质附加到C#脚本。将立方体添加到场景以查看效果。转到Unity上的播放模式,并调整脚本上的设置 4) 变量的作用是什么 a) 波数: 波浪的数量, 1=

在游戏《超级路易吉银河》中,当玩家掉进冷水中时,屏幕会晃动。有没有一种可能的方法在统一中实现这种效果

效果如下所示:


我不知道这个效果的名称,很抱歉我没有提供详细信息。

很抱歉我太愚蠢了

1) 添加新的着色器、材质和C#脚本

2) 脚本编写
着色器(添加到底部,并删除颜色反转):

C#:

3) 将C#脚本附加到摄影机,将着色器附加到材质,然后将材质附加到C#脚本。将立方体添加到场景以查看效果。转到Unity上的播放模式,并调整脚本上的设置

4) 变量的作用是什么

a) 波数: 波浪的数量, 1=大量波浪 30=非常少的波浪

b) 波长: 偏移波的x有多远, 1=非常宽的波 1000=非常短波


我建议波数为1,波长为100。

后处理着色器。是的,正如@Draco18s所说,您可以在资产存储中找到更多信息。是一个自由的统一体。它有很多效果,如模糊、暗淡、颜色校正等@EmreE我安装了后期处理堆栈,但没有一个效果是我想要的。你可以尝试调整其中的一些,可能会得到你想要的效果,但不确定。还有付费资产,也许它们有你想要的效果。
        uniform float _waveLength;
        uniform float _waveNumber;

        fixed4 frag (v2f IN) : SV_Target
        {
            fixed4 col = tex2D(_MainTex, IN.uv + float2(sin(IN.vertex.y / _waveLength + _Time[1]*50) / _waveNumber, 0));

            return col;
        }
using UnityEngine;

public class testscript : MonoBehaviour {

    public Material mat;

    public float waveNumber;
    public float waveLength;

    void Update()
    {
        Shader.SetGlobalFloat("_waveLength", waveNumber); // I know I switched the variables on accident. It still works though.
        Shader.SetGlobalFloat("_waveNumber", waveLength);
    }

    void OnRenderImage( RenderTexture src, RenderTexture dest)
    {
        Graphics.Blit(src, dest, mat);
    }
}