有時咱們須要在Unity3D中繪製進度條,如:學習
或
spa
若是使用4.6版本如下的unity繪製環形的進度條可能須要費點勁。我搜到的大多數方法都是用NGUI插件,但有時只是爲了簡單的畫一個環形UI,使用NGUI反而還增長了學習成本。有一個利用CutOut材質的方法可以利用alpha值,靈活的控制進度條中須要顯示的部分,以環形進度條爲例,方法以下:插件
一、在PS中製做一張以下所示的圖,RGB爲進度條想要的顏色,alpha值從5-250環形漸變(若是從0-255,在進度爲0%或100%時會顯示異常,這與CutOut材質的特性有關)3d
二、新建材質 選擇Transparent Cutoutblog
三、設置紋理資源
四、將導入的紋理拽入材質get
五、新建Quad博客
六、選擇第2步建立的材質it
七、建立正交相機,並將深度置爲最前下載
八、將它們拖到荒無人煙的地方(這是UI,七、8兩步確保它是在場景的最前面,且不會出如今才3D場景中)
九、調整Alpha cutoff觀看效果
十、若想作出反方向的效果,則須要在作圖的時候勾選反向
十一、咱們的目標是:寫腳本控制alpha cutoff的值
十二、代碼以下,最核心的一句已經框起來了
到此爲止,轉圈的進度條/能量條的方法闡述完畢,核心思想是利用CutOut材質控制alpha值控制進度條的顯示。在CutOut材質中,當alpha值高於設置的"alpha cutoff"時,徹底不透明;低於設置的"alpha cutoff"時,徹底透明。利用CutOut材質的這種特性,經過製做合適的漸變紋理,能夠實現各類各樣的進度條,美中不足的是抗鋸齒能力不太好。
在這篇博客寫完後,我以爲CutOut材質不能有半透明效果,不太合理,因而乎搞了個shader稍微改進了下,你能夠在這裏下載本文改進後的資源。至於博客中的截圖嘛……都差很少,懶得更新了,須要的童鞋看看代碼就明白了。