Unity3d 內置圖形界面系統(Editor GUI)


一、說在前面的

1、unity內置的ui系統,無論是在性能的表現上、功能的強大性上、制作復雜ui的便捷性上,還是其它的一些方面都不如一些第三方的插件來的好,如:NGUI和DF-GUI(PS: 后者比前者要好很哦,推薦!))。

2、雖然UnityGUI不如某些第三方的插件,但是它在做一些簡單的測試上,做數據高度上還是要方便一些的;而且如果你要做Inspector的定制與Unity插件開發的話,UnityGUI你是繞不過去的哦。所有大概熟悉一下UnityGUI還是必要的!

3、關於UnityGUI的所有知識,在官方文檔中的都有詳細的介紹,在聖典上也有一一翻譯。我這里只是做一些簡單的記錄,也許有不對的地方,也許以后還會所補充!

4、還有就剛接觸這塊時覺得UnityGUI相關API有點亂,覺得來必要記錄一下。

二、GuiLayer組件

GuiLayer是顯示UnityGUI元素的必要組件,且必須附在一個相機對象上!不然你的UI是顯示不出來的。

三、古老的組件

1、這部分主要是GuiTextGuiTexture組件,GuiElement是它們的基類,詳參相應的鏈接。
2、GuiText以用來打印顯示一些調試信息和簡單的數據顯示。
3、GuiTexture也在用來做一些簡單ui部件或整個游戲畫面的背景。

四、UnityGUI系統的分類

這部分就比較復雜一些了。
1、首先它可以分成兩個獨立的部分:非Editor類與Editor類。其中每部分中可以分成兩個獨立的部分:GUI系和GUILayout系。其中的GUI系下的組件的名字基本上只用“GUI”開頭,而GUILayout系下的組件的名字基本上是“GUILayout”開頭的。這樣就有四個相對獨立的UI系統了,這四個部分,每個拿出來都能相對完整個完成一個UI制做。
2、不同的是Editor類是用於編譯器的制定與擴展方面,GUILayout系要比GUI系在功能上要強一點而以。呵呵,是不是有點繞,有點亂,有點暈。非Editor類與Editor類共存還點說的過去,GUILayout系要比GUI系共存就有點那個了。
3、本來一個不復雜的UI系統,搞這好幾套,還混合着用,就變得有點頭疼不。出現這種情況可能是為了向上兼容吧,不過代價有點大啊。
4、不過只要我們理清楚它們的別,盡量只用一種,應該還好吧!下面我將會重點記錄GUILayout系的UI,

五、GUILayout系下的組成

1、樣式的組件

GUISkinGUIStyleGUISetting這是四個類別所共享的。
GUISkin是一組件GUIStyle的集合。GUISkin包含一組所有控件的樣式,可以修改,也可自定新的。
GUISetting是UI的一些標准設置,這些設置被所有在GUISkin中的元素共享。它也是包含在GUISkin的組件的inspector下的。
GUIStyle定義一個界面元素(或者一個控件)如何渲染的所有信息,如它使用的字體、圖標位置、背景圖片和間距等等,很多的設置。

2、控件構造組件

GUILayout是用來結構各類控件的。
構造一個控件可以有三個參數:
內容--文本/圖片/GUIContent;
樣式--GUIStyle對象;
布局選項--GUILayoutOption對象,這個參數的數量是可變的。用於控制控件的大小,當於GUI系中的Rect參數。注:GUILayoutOption對象要通過GUILayout組件下的如下方法獲取
GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight。

3、布局組件

布局組件有兩個:GUILayout和GUILayoutUtility.
這里要說一下GUILayout,這是個很牛X的組件。它有三大功能:創造控件、設置並獲取GUILayoutOption對象、和布局控件的功能。
GUILayout的布局功能有:插空白、垂直布局、水平布局、滾動視圖布局、還一個窗口布局。混合嵌套這些布局方式,基本上就要得到你想要的UI了。
GUILayoutUtility這個組件是GUILayout的一個補充,它提供了一個方法,在構造一個控件之前,先獲取它的矩形大小或先設置一個要使用的矩形大小。

六、說在最后的

1、上面我只大概說了一下UnityGUI系的UI組件的用法,其它的也差不多。
2、前面已經說了,UnityGUI系統可以分為相對四個獨立的部分。它們之間有共有的組件,有不同但相似的組件,也有只用的於編輯器的組件。只要我們分開來學習,是不學混亂的。分合思想在應該也是很重要的學習方式!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM