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

1、說在前面的

一、unity內置的ui系統,不管是在性能的表現上、功能的強大性上、製做複雜ui的便捷性上,仍是其它的一些方面都不如一些第三方的插件來的好,如:NGUI和DF-GUI(PS: 後者比前者要好很哦,推薦!))。html

二、雖然UnityGUI不如某些第三方的插件,可是它在作一些簡單的測試上,作數據高度上仍是要方便一些的;並且若是你要作Inspector的定製與Unity插件開發的話,UnityGUI你是繞不過去的哦。全部大概熟悉一下UnityGUI仍是必要的!編輯器

三、關於UnityGUI的全部知識,在官方文檔中的都有詳細的介紹,在聖典上也有一一翻譯。我這裏只是作一些簡單的記錄,也許有不對的地方,也許之後還會所補充!佈局

四、還有就剛接觸這塊時以爲UnityGUI相關API有點亂,以爲來必要記錄一下。性能

2、GuiLayer組件

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

3、古老的組件

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

4、UnityGUI系統的分類

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

5、GUILayout系下的組成

一、樣式的組件

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

二、控件構造組件

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

三、佈局組件

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

6、說在最後的

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

相關文章
相關標籤/搜索