NGUI學習筆記2-窗口及子類

    NGUI 窗口及子類總共有sprite,label,texture,,2d sprite,widget幾類。這是NGUI的基礎顯示單元,通過和不同的腳本結合,從而產生強大的效果。

   首先我們看widget。這個widget本質上是個容器,但單獨把這個放場景基本是不顯示的。所以他的最大作用就是分類管理。但是考慮到所有子類都從widget派生,實質上所有子類都有容器的功能。比如,在設計UI時,可以考慮將底層的背景作爲父控件,其上的功能控件作爲子控件,通過操作父控件,可以實現對子控件的一併控制。從這個角度上講,似乎沒有必要單獨引入一個不可見的widget到UI層。除此之外,widget也定義了控件的一些基礎屬性。alpha 透明度;depth 渲染的深度,越大越上面;width height。等等。這些腳本里面都是public接口,意味着也可以寫腳本來操作這些屬性。PIVOT定義控件原點位置。Anchors定義錨點。

   sprite:將設定圖集中的某個sprite顯示出來。不同的選項有不同的效果。比如type選tile就是大家都比較熟悉的平鋪。color 可以設定顯示的顏色。這裏有個簡單的操作如果默認他的選項,直接設顏色的話,可以得到一個大致同色的色條。

   Label:標籤。這個類集中處理與字體相關的基礎功能。可以通過font設置字體,還可以設置材質(雖然還沒有嘗試,不過這大概意味着可以通過對應材質的shader來實現特殊效果)。Text屬性代表顯示的字體內容。另外如果大家有看NGUI自帶的示例功能的話,會發現可以在文本中寫入[ff0000]...[-]之類的東西來控制字體的顏色,但是這裏有個坑就是。。最終顯示的顏色是你設定的這個顏色加上color tint裏顏色的總值。所以。。如果color tint已經設爲黑色了 那麼無論怎麼設顏色,最終都只會顯示黑色。另外BBCODE選項是這個功能的開關。

   texture:這個和sprite的最大區別是 這個可以設材質、shader。當然最簡單的運用就是直接拖一張背景圖到Textrue。。。至於更高級的效果,大家寫shader去吧。不過如果同時設了材質和shader,那不是可能會衝突嗎?看源碼,如果直接取shader屬性,會優先返回材質的shader。而設置shader值時,加入材質已經被賦值,會直接將材質重置爲NULL。所以這2個應該本質上是互斥的選項。

   2d sprite:從源碼上看,這個2d sprite指的unity自帶的sprite。所以這個是使用unity 2d sprite來作爲顯示的控件。與ngui的sprite相比,顯然可以在顯示上獲得更多的靈活性。


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