一祷愉、前言
又是一個(gè)好久沒(méi)有更新了,還是因?yàn)樘Ω昂钇埱以圃疲?dāng)然有好的東西還是需要拿出來(lái)和大家分享一下的订讼。
使用的是.5.0版本,慣例欺殿,先上效果圖,如圖所示:該效果是響應(yīng)每一次鼠標(biāo)點(diǎn)擊時(shí)候脖苏,在鼠標(biāo)的點(diǎn)擊的位置處產(chǎn)生一個(gè)顏色隨機(jī)的
波
二、實(shí)現(xiàn)方法
1恃鞋、重點(diǎn)的Shader部分:
首先,是最難的顏色轉(zhuǎn)換函數(shù)恤浪,代碼:
樹(shù)上的cat畅哑,如果您要查看本帖隱藏內(nèi)容請(qǐng)回復(fù)
2、創(chuàng)建波紋預(yù)設(shè)體
有了Shader之后水由,創(chuàng)建該Shader的材質(zhì)球敢课,我一般都會(huì)直接選中該Shader,然后右鍵創(chuàng)建材質(zhì)绷杜,這個(gè)材質(zhì)就直接賦值了這個(gè)Shader直秆,并且命名也會(huì)和該Shader的名字相關(guān)。創(chuàng)建完材質(zhì)之后鞭盟,創(chuàng)建一個(gè)空物體圾结,并且給這個(gè)空物體添加Sprite Renderer屬性。將下面的貼圖給Sprite Renderer的Sprite齿诉。
編寫(xiě)該預(yù)設(shè)體的控制腳本筝野,代碼如下:
//轉(zhuǎn)換顏色的方法
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、最后寫(xiě)一個(gè)總控腳本
控制預(yù)設(shè)體點(diǎn)擊創(chuàng)建粤剧,代碼如下:
[C#]純文本查看復(fù)制代碼
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
}
轉(zhuǎn)自:http://www.manew.com/thread-106798-1-1.html