NGUI學習筆記2 視窗及子類

2021-07-15 04:39:21 字數 1159 閱讀 2364

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相比,顯然可以在顯示上獲得更多的靈活性。

Qt學習之路2 視窗元件及視窗型別

視窗元件 圖形使用者介面由不同的視窗和視窗元件構成 qt以元件物件的方式,構建圖形使用者介面。元件的型別包括 容器類 父元件 用於包含其他的介面元件 功能類 子元件 用於實現特定的互動功能 qt中沒有用父元件的頂級元件叫做視窗。qwidget 繼承自qobject和qpaintdevice qwid...

python學習筆記 子類

class car def init self,make,model,year self.make make self.model model self.year year 設定預設值 self.odometer reading 0 def get descriptive name self lon...

MFC中視窗的建立及子類化過程

通常情況下視窗是由使用者建立的 cwnd create 在此流程中,mfc提供乙個機會 precreatewindow 供使用者在建立前作點手腳,如修改一下視窗樣式等。而對於對話方塊等,視窗是通過subclass方式交給使用者的 1.系統讀入對話方塊模板,建立其中各個子視窗 2.然後將各子視窗的 訊...