Unity中實現灰度圖效果

曾經做遊戲時研究過這個灰度圖效果,一直沒有時間把它寫出來,最近空了,整理了出來。


本文將介紹兩種灰度圖效果,一種是普通Untiy中使用的材質的灰度圖效果,一種是NGUI中使用在滾動軸中的灰度圖效果.


一:普通Unity中使用的材質的灰度圖效果

其實這就是一個簡單的Shader處理,Shader腳本中的主要處理如圖:



新建一個場景,裏面建立一個Sphere然後給它新建一個材質,材質的Shader使用我們上面的Shader:


Fadellevel爲1的時候效果如圖:




FadelLevel爲0時:




這樣就實現了灰度效果,對於一般的情況都能使用,但是在NGUI中用不了,NGUI中的圖集選涉及太多層級問題,還有它自己的Shader,那就需要改NGUI的Shader才能實現,現在我們就先不說這個問題,下面的鏈接這是這個Shader的下載地址:


下載此灰度效果的Shader


二:NGUI中實現灰度圖效果


爲啥會有這個需求呢,來講下緣由,曾經做遊戲中的技能面板時,某些技能在沒有達到級別的時候是不能開放使用的,但是要顯示出灰色的效果就能表示它是未激活的狀態,但是這個技能條的所有圖片都是來自NGUI的圖集,如果我改了Shader,那麼次圖集中的所有圖片就會變成灰色的,因爲他們ShadreUV了。後來通過朋友告訴我怎麼解決的呢,原來有個取巧的方法,替換NGUI中的所有Shader ,在顏色爲特定值時,讓它的效果至灰度圖效果,樓主覺得想到這個方法的人這是太聰明瞭》


下面我說下具體的怎麼弄的:

看下圖:


在原有的Shader的基礎上,做了灰度處理,就好了.

所以我們要這個效果的話,就把NGUI中的Resouces下有個Shaders文件夾,這裏面是NGUI的Shader,然後我們把他們全都替換成我們改過的Shader就好,末尾我會上傳這個包。

替換後,我新建一個NGUI的Texture,然後拖入圖片如圖所示:


     


然後理論上我吧圖片的顏色改成0.19和0.21之間就能達到灰度效果,我們取0.2吧,對應成255的計算也就是51,然後我們把圖片的ColorTint設置成(51,51,51,255)。


效果如圖:真的變成灰色了哦。




最後附上替換Shader的包下載


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章