Unity IMGUI
来源:互联网 发布:购物软件排行2016 编辑:程序博客网 时间:2024/05/18 13:06
1.基础
创建每种控件的方法都是雷同的。第一个参数rect,表示位置;后面的参数表示控件的内容,可以包含字符串和图片,tooltips,可以单独用其中一个, 也可以使用GUIContent,使用多个。还有一个guistyle。
2.控件类型
Label
Button,抬起时返回true;RepeatButton,按住时一直返回true。通过if来判断
void OnGUI () { if (GUI.RepeatButton (new Rect (25, 25, 100, 30), "RepeatButton")) { // This code is executed every frame that the RepeatButton remains clicked } }
TextField,可编辑。返回值为我们在文本框中编辑的内容。所以要把该返回值再用来创建TextField
TextArea,可编辑。与TextField区别是可以换行,可多行显示
private string textFieldString = "text field";void OnGUI () {textFieldString = GUI.TextField (new Rect (25, 25, 100, 30), textFieldString);}Toggle,一个checkbox,也就是单选框。同样的,需要把返回值再用来创建Toogle
private bool toggleBool = true; void OnGUI () { toggleBool = GUI.Toggle (new Rect (25, 25, 100, 30), toggleBool, "Toggle"); }ToolBar,创建多个button,同时只能选中一个。需要利用返回值。
SelectionGrid,相当于多行的ToolBar
private int selectionGridInt = 0; private string[] selectionStrings = {"Grid 1", "Grid 2", "Grid 3", "Grid 4"}; void OnGUI () { selectionGridInt = GUI.SelectionGrid (new Rect (25, 25, 300, 60), selectionGridInt, selectionStrings, 2);//2表示水平方向上排2个button }
HorizontalSlider和VerticalSlider水平滑动条和垂直滑动条。滑动时返回值在最大值和最小值之间改变。需要利用返回值
HorizontalScrollBar和VerticalScrollBar与滑动条区别不大。多了个参数,控制滑块大小。
ScrollView
使用GUI.BeginScrollView()和GUI.EndScrollView();其中BeginScrollView需要两个矩形作为参数。第一个矩形是ScrollView的可视范围。第二个矩形是ScrollView的拖动范围。
3.GUILayout
自动布局。GUI(固定布局)可以和GUILayout(自动布局)同时使用
在固定布局时,可以使用GUI.BeginGroup 和GUI.EndGroup来定义一个新的空间来放置多个控件,相当于在屏幕空间中定义了一个小的屏幕,超出这个小屏幕的空间将被裁减。
在自动布局时,可以用GUILayout.BeginArea和GUILayout.EndArea来实现类似的功能。在Area内的控件,像Box和Button这种带有背景的控件会自动拉伸到整个Area宽度。如果不在Area内,控件会有一个默认宽度,不会拉伸到和屏幕同宽。
可以使用GUILayoutOption来覆盖GUILayout的一些设置。GUILayoutOption我们不直接使用,而是使用GUILayout.Width等方法获取
void OnGUI () { GUILayout.BeginArea (new Rect (100, 50, Screen.width-200, Screen.height-100)); GUILayout.Button ("I am a regular Automatic Layout Button"); GUILayout.Button ("My width has been overridden", GUILayout.Width (95)); GUILayout.EndArea (); }
如上例,本来第二个button的宽度应该跟Area同宽,但是加上
GUILayout.Width (95)
还有如果Button不在Area里,会有一个默认宽度,也可以用GUILayout.Width来自定义宽度。
但是再宽也不会超过屏幕宽度或Area宽度(被裁减掉了)
自动布局时,默认情况下,各控件由上到下依次显示。
可以使用GUILayout.BeginHoriztontal(),GUILayout.EndHorizontal(), GUILayout.BeginVertical(), and GUILayout.EndVertical().来控制各控件水平显示或垂直显示。可嵌套。
0 0
- Unity IMGUI
- Unity 3D 官方文档 UGUI总览 IMGUI OnGUI Editor脚本初窥1
- Unity 3D 官方文档 UGUI总览 IMGUI OnGUI Editor脚本初窥2
- IMGUI学习总结
- love2d与imgui
- unity
- Unity
- unity
- Unity
- Unity
- Unity
- Unity-----
- unity
- Unity
- unity
- unity
- Unity
- Unity
- Java---练习(面试题) :字符串截取(2-最终版)
- 如何在ubuntu上使用docker安装单机spark
- 当手机横竖屏切换时,如何有效保证数据完整性
- Android 获取屏幕宽高
- 使用jquery制作漂亮相册集
- Unity IMGUI
- 写程序不要考虑未来
- 基于JavaScript 声明全局变量的三种方式详解
- 设置父视图透明度而不影响子视图
- Apache 服务器
- 创建固定大小的文件
- Apache Maven项目提供的Ant插件详解
- Android LayoutAnimation使用及扩展
- 访问本地相册、照相机