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很方便在屏幕上输出调试想要的信息,作为开发人员调试挺方便的~