GUI 和 GUILayout 的區別


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很方便在屏幕上輸出調試想要的信息,作為開發人員調試挺方便的~


免責聲明!

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



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