Unity音乐喷泉效果
效果
实现效果(根据音乐的高低会产生不同的波纹):
可以观看视频来获得更好的体验。
波纹的实现
先模拟出如下效果:
通过鼠标的点击,产生一个扩散的圆圈。
如上图所示,这个效果主要通过Displatment Shader实现,首先创建Shader,Matrial,在Scene视图尝试我们的想法。
Shader可参考,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);
}
}