Unity3D中靈活繪製進度條

      有時咱們須要在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稍微改進了下,你能夠在這裏下載本文改進後的資源。至於博客中的截圖嘛……都差很少,懶得更新了,須要的童鞋看看代碼就明白了。

相關文章
相關標籤/搜索