GUI 和 GUILayout 的區別
A~ GUI是Unity中的基礎控件類,其中包含了常用的GUI控件,列如Button,Label,PasswordField,slider,Window等等~ 其中的參數函數就不一一列舉了。。查文檔一大堆~
B~ Unity中還有另外一個GUI類,也就是GUILayout,這個類相當於是對GUI做了一層自動布局的封裝,但是從源碼來看,GUILayout並不是繼承於GUI的,而是新開了一個類別~
C~ 下面說說GUILayout和GUI的一些區別吧~
1、有這樣一個需求,我在屏幕上繪制了一個Label,用來展示手機陀螺儀獲取到的數據.
a.通過GUILabel繪制~
GUI.Label (new Rect(0,100,300,100), string.Format ("用戶加速度—— x:{0},y:{1},z:{2},", Input.gyro.userAcceleration.x, Input.gyro.userAcceleration.y, Input.gyro.userAcceleration.z));
這時候屏幕上出現的狀況是Label里面的字符串居中顯示,由於陀螺儀的數據是在動態的刷新,所以label里面的字符串有時長有時短,導致了Label里面的字體不停的閃動。不易看清楚我需要的信息。。
b.GUILayout.Label繪制~
GUILayout.Label (string.Format ("用戶加速度—— x:{0},y:{1},z:{2},", Input.gyro.userAcceleration.x, Input.gyro.userAcceleration.y, Input.gyro.userAcceleration.z));
使用GUILayout並不需要使用Rect描述他的坐標和長寬,而是直接在構造函數里面傳入字符串就可以~重要的是字符串自動左對齊,我所需要的信息不再閃爍~ 如下圖
最后總結叻 ~ 開發中可以使用GUILayout很方便在屏幕上輸出調試想要的信息,作為開發人員調試挺方便的~