说的不是UGUI,更不是NGUI,NGUI都是几年前的项目才用的,就是假如你接到一个外包,而那个包是2015年前开发的,才需要NGUI,所以真的不需要说
今天要说的是纯GUI,当然一般人可能不会用到了,不过给新人入门说一说吧
1.如果不懂GUI.Button 和GUILayout.Button的区别,可以看这个
https://blog.csdn.net/u013289188/article/details/29618897
2.如果不懂FlexibleSpace的原理
https://blog.csdn.net/u013289188/article/details/30749867
看过很多国外大牛写的自定义编辑器的代码用FlexibleSpace
让我一直以为 FlexibleSpace() 方法是可以让界面元素对齐的方法
其实 FlexibleSpace 真的就是做布局元素间扩展的,而不是布局元素本身的扩展
举个栗子:(以下文字效果图,最终截图在最后)
界面1:
-------------------------------------
元素1
-
|
|
元素2
-------------------------------------
中间的就是 FlexibleSpace, 使得元素1在顶部,而元素二在最底部, 当然打横布局也可以使用 Flexible
而不是
界面1-1:
-------------------------------------
元素1__________
元素2元素2元素2元素2
-------------------------------------
这并不是 FlexibleSpace 处理的
今天才知道 FlexibleSpace 是布局元素,相当于boxlayout 或者boxspace,如果有做过html5 或者javascript就比较好理解
又或者C++ 的MFC,Android的xml,
这个不需要深究,反正就是有做过一定界面编程经验的就应该要能理解
下面这个对齐需要的不是FlexibleSpace,而是LayoutOption.ExpandWidth(false)
function OnGUI ()
{
GUILayout.Button("设置宽度不等于最宽按钮",GUILayout.ExpandWidth(false));
GUILayout.Button("设置宽度等于最宽按钮", GUILayout.ExpandWidth(true));
}
说完了,其实就这么多。。。。。。。只要懂原理就行了,不需要看什么API文档,不需要看什么书