美文网首页Unity Shader分享
Shader案例篇—点击屏幕波纹涟漪效果 (转)

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

作者: 树上的cat_ee3c | 来源:发表于2017-09-26 23:13 被阅读223次

    一、前言

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

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

    二、实现方法

    1、重点的Shader部分:

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

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

    2、创建波纹预设体

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

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

    //转换颜色的方法

    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案例篇—点击屏幕波纹涟漪效果 (转)

        本文链接:https://www.haomeiwen.com/subject/lftyextx.html