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);
    }
}
Unity音乐喷泉效果的更多相关文章
- WPF 简易的喷泉效果
		这两天领导让我做个喷泉的效果,要把一个个UserControl从一个位置喷出,然后,最后落在最终需要在的位置. 喷泉效果说白了,就是两个步骤:1.放大,从0放大到需要的倍数:2.缩小,平移,从放大的倍 ... 
- css实现简单音乐符效果
		css实现简单音乐符效果 利用css3中的transform.animation.keyframes实现 <!DOCTYPE html> <html lang="en&qu ... 
- 【HTML5】Web Audio API打造超炫的音乐可视化效果
		HTML5真是太多炫酷的东西了,其中Web Audio API算一个,琢磨着弄了个音乐可视化的demo,先上效果图: 项目演示:别说话,点我! 源码已经挂到github上了,有兴趣的同学也可以去st ... 
- unity传送门类似效果实现
		简述 在传送门中,核心的玩法是在地上或者墙上打开2个可以联通的洞来实现传送的效果.以此扩展加入解谜要素构成游戏的核心. 这里尝试使用unity来实现传送门的核心功能,具体功能分析如下: 1.传送门的模 ... 
- Unity Shader - 消融效果原理与变体
		基本原理与实现 主要使用噪声和透明度测试,从噪声图中读取某个通道的值,然后使用该值进行透明度测试. 主要代码如下: fixed cutout = tex2D(_NoiseTex, i.uvNoiseT ... 
- unity,荧光效果(bloom)实现过程
		两个月前,刚接触unity的时候费了半天劲儿做了个荧光效果(见:http://www.cnblogs.com/wantnon/p/4430749.html),今天终于抽空整理了一下,把过程写下来. 荧 ... 
- 关于Unity中粒子效果的使用
		粒子效果1: 游戏中会有很炫酷的特效,比如爆炸,水花,火焰等;2: unity提供粒子编辑器,方便特效人员来开发很炫酷的特效;3.粒子效果一般有专门的粒子特效师来做,我们只需要拿来用就好了,很多参数没 ... 
- unity 图片 粉碎效果 破碎效果
		效果: 点击按钮后: 这些碎片具有物理碰撞效果,下面会有隐形的支柱垫着碎片,n秒后支柱消失,碎片落下 当然你也可以控制生成的碎片,让他们从下而上一块一块地落下 插件源码: https://github ... 
- Unity光晕剑效果的Shader简单实现
		最近遇到了一个需求,想要一种在刀剑上带有光晕的酷炫效果,甚至是还想要有闪烁呼吸效果,于是就写了一个简单的叫LightSwrod的Shader去实现,先上图看看效果吧. 简单展示 这是剑本身的样子 这是 ... 
随机推荐
- 新手教程丨利用Python制作一款截图识别软件!
			进入正文前给大家推荐一个微软开发的工具:Snipaste. 这是一款截图软件,把截出的图片放置到窗口上,可以随意移动,使用非常方便,并且支持各类电脑系统. 先简单介绍一下它的用法,F1截图,Ctrl+ ... 
- Django—常见问题解决
			让Django项目运行允许外部访问 1.将python manage.py runserver 改为 python manage.py runserver 0.0.0.0:80 或者 python m ... 
- ENVOIA
			1,ENVOIA 组织架构讲解 2,开发中的各文件详细讲解 3,系统Data Model讲解 ENOVIA 2012 Online doc文档简介. 介绍ENOVIA组织架构. 介绍ENOVIA前身M ... 
- 5-7 可视化库Seaborn-热度图绘制
			In [1]: %matplotlib inline import numpy as np import matplotlib.pyplot as plt import seaborn as sns ... 
- 23.Java基础_ArrayList类
			ArrayList类的构造和使用方法 import java.util.ArrayList; public class test { public static void main(String[] ... 
- [C3] Andrew Ng - Neural Networks and Deep Learning
			About this Course If you want to break into cutting-edge AI, this course will help you do so. Deep l ... 
- version_compare ()
			version_compare() ----对比两个「PHP 规范化」的版本数字字符串 version_compare ( string $version1 , string $version2 [, ... 
- C语言前置知识汇编基础--总线【地址总线,控制总线,数据总线】练习题
			寻址就是用一个数字表示一个字节存储单元的地址,而不是表示这个存储单元中的内容,所以不用乘以8. 1. 1个CPU的寻址能力为8KB,那么它的地址总线宽度是多少? 8*1024=8192 共有8 ... 
- C++中enum(转载)
			原文地址:http://www.cnblogs.com/ForFreeDom/archive/2012/03/22/2412055.html 1.为什么要用enum 写程序时,我们常常需要 ... 
- Python爬取糗事百科示例代码
			参考链接:http://python.jobbole.com/81351/#comment-93968 主要参考自伯乐在线的内容,但是该链接博客下的源码部分的正则表达式部分应该是有问题,试了好几次,没 ... 
