Shader案例篇—点击屏幕波纹涟漪效果 (转)

一、前言

又是一个好久没有更新了,还是因为太忙,生活苟且云云,当然有好的东西还是需要拿出来和大家分享一下的。

使用的是.5.0版本,惯例,先上效果图,如图所示:该效果是响应每一次鼠标点击时候,在鼠标的点击的位置处产生一个颜色随机的

Shader案例篇—点击屏幕波纹涟漪效果 (转)_第1张图片

二、实现方法

1、重点的Shader部分:

首先,是最难的颜色转换函数,代码:

树上的cat,如果您要查看本帖隐藏内容请回复

2、创建波纹预设体

有了Shader之后,创建该Shader的材质球,我一般都会直接选中该Shader,然后右键创建材质,这个材质就直接赋值了这个Shader,并且命名也会和该Shader的名字相关。创建完材质之后,创建一个空物体,并且给这个空物体添加Sprite Renderer属性。将下面的贴图给Sprite Renderer的Sprite。

Shader案例篇—点击屏幕波纹涟漪效果 (转)_第2张图片

编写该预设体的控制脚本,代码如下:

//转换颜色的方法

fixed3 shift_col(fixed3 RGB, half3 shift)

{

fixed3 RESULT = fixed3(RGB);

floatVSU = shift.z*shift.y*cos(shift.x*3.14159265 / 180);

floatVSW = shift.z*shift.y*sin(shift.x*3.14159265 / 180);

RESULT.x = (.299*shift.z + .701*VSU + .168*VSW)*RGB.x

+ (.587*shift.z - .587*VSU + .330*VSW)*RGB.y

+ (.114*shift.z - .114*VSU - .497*VSW)*RGB.z;

RESULT.y = (.299*shift.z - .299*VSU - .328*VSW)*RGB.x

+ (.587*shift.z + .413*VSU + .035*VSW)*RGB.y

+ (.114*shift.z - .114*VSU + .292*VSW)*RGB.z;

RESULT.z = (.299*shift.z - .3*VSU + 1.25*VSW)*RGB.x

+ (.587*shift.z - .588*VSU - 1.05*VSW)*RGB.y

+ (.114*shift.z + .886*VSU - .203*VSW)*RGB.z;

returnRESULT;

}

3、最后写一个总控脚本

控制预设体点击创建,代码如下:

[C#]纯文本查看复制代码

Properties

{

[PerRendererData] _MainTex("Sprite Texture", 2D) ="white"{}

[HideInInspector]_StartTime("StartTime", Float) = 0

_AnimationTime("AnimationTime", Range(0.1, 10.0)) = 1.5

_Width("Width", Range(0.1, 3.0)) = 0.3

_StartWidth("StartWidth", Range(0, 1.0)) = 0.3

[Toggle] _isAlpha("isAlpha",Float) = 1

[Toggle] _isColorShift("isColorShift",Float) = 1

[MaterialToggle] PixelSnap("Pixel snap", Float) = 1

}


转自:http://www.manew.com/thread-106798-1-1.html

你可能感兴趣的:(Shader案例篇—点击屏幕波纹涟漪效果 (转))