本文参考了该文,其素材也取之于该处

效果

实现效果(根据音乐的高低会产生不同的波纹):
Unity音乐喷泉效果
可以观看视频来获得更好的体验。

波纹的实现

先模拟出如下效果:
Unity音乐喷泉效果
通过鼠标的点击,产生一个扩散的圆圈。
Unity音乐喷泉效果
如上图所示,这个效果主要通过Displatment Shader实现,首先创建Shader,Matrial,在Scene视图尝试我们的想法。
Shader可参考,Unity官网教程
Unity音乐喷泉效果
这样我们就可以通过改变DispTexture这张贴图的圆环就能产生大小不同的隆起效果,再通过每帧刷新的方式继而可以参数波纹扩散的效果。
为了得到具有大小不同的DispTexture,首先我们制作一张黑色的贴图,并把白色的圆环画在上面,通过代码来改变白色圆环的大小。
这里给出鼠标坐标转为贴图的坐标代码

if(Input.GetMouseButtonDown(0)) {
    RaycastHit hit;
    var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    if(Physics.Raycast(ray, out hit)) {
        var pixelUV = hit.textureCoord;
        pixelUV.x *= 64; // 64纹理宽
        pixelUV.y *= 64; // 64纹理高
        CreateWave(pixelUV);
    }
}

相关文章:

  • 2021-04-26
  • 2021-05-10
  • 2021-12-17
  • 2021-08-26
  • 2021-08-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-02
  • 2021-09-14
  • 2022-12-23
  • 2022-01-06
  • 2021-08-14
  • 2021-12-13
相关资源
相似解决方案