[原]Unity3D深入浅出 - GUI控件
Unity的GUI类提供了丰富的界面控件,通过组合这些控件,完成和用户交互的界面。
- Lable:绘制文本和图片
- Box:绘制一个图形框
- Button:绘制一个响应单击事件的按钮
- RepeatButton:绘制一个处理连续按下事件的按钮
- TextField:绘制一个单行文本输入框
- PasswordField:绘制一个密码输入框
- TextArea:绘制一个多行文本输入框
- Togle:绘制一个开关
- Toolbar:绘制一个工具条
- SelectionGrid:绘制一组网格按钮
- HorizontalSlider:绘制一个水平方向的滑动条
- VerticalSlider:绘制一个垂直方向的滑动条
- HorizontalScrollbar:绘制一个水平方向的滚动条
- VerticalScrollbar:绘制一个垂直方向的滚动条
- Window:绘制一个窗口,可以用于放置控件。
GUI代码需要在OnGUI函数中调用才能绘制,如果放在Update函数中会报错。
GUI控件一般需要传入一个Rect参数来指定屏幕的绘制区域。例如Rect(20,40,100,60),则绘制在离屏幕左上角坐标(20,40)的位置,宽度为100,高度为60。
注意:在UnityGUI中,屏幕坐标系以左上角为原点(0,0),右下角为(Screen.Widht,Screen.Height)
GUILayout自动布局:
在unity中GUI控件的布局方式有两种,一种为固定布局,即在绘制控件时传入的位置参数;另外一种就是GUILayout自动布局,这种方式一般用于开发者不太在乎控件的精确位置的情况下。
如果想使用自动布局,绘制时使用GUILayout来绘制控件。
示例:
void OnGUI(){
//固定布局
GUI.Button(new Rect(,,,),"GUI button");
//自动布局
GUILayout.Button("I am an automatic layout button")
}
区域Area:
有时候使用自动布局,当控件数量过多的时候则会显得摆放得太杂乱,这时候可以使用GUILayout.BeginArea和GUILayout.EndArea来指定自动布局要摆放的区域,对显示区域大致划分。
示例:
void OnGUI()
{
GUILayout.BeginArea(new Rect(Screen.width/,Screen.height/,,);
//在这之间绘制控件
GUILayout.EndArea();
}
另外还有GUILayer.BeginHorizontal和GUILayer.EndHorizontal,来设置水平布局。
GUILayout.BeginVertical和GUILayer.EndVertical,类设置垂直布局。
[原]Unity3D深入浅出 - GUI控件的更多相关文章
- Unity3D入门之GUI基础以及常用GUI控件使用(2)
1.GUI基础 (1)GUI部分是每帧擦除重绘的,只应该在OnGUI中绘制GUI,按钮:GUILayout.Button(“Hello”); 只读标签:GUILayout.Label() (2)修改控 ...
- 从一点儿不会开始——Unity3D游戏开发学习(二) ——GUI控件之Button
一些废话 我在上一篇“一点儿不会”的系列随笔中说大概一周会发个2~3篇关于Unity的学习笔记.可这就两周过去了,我还停留在一篇的进度上,主要是这两周发生了一些事情导致我更新缓慢.其实截至目前为止,上 ...
- Unity3D学习笔记(一)GUI控件的调用
GUI控件:1.在Start中初始化,在OnGUI中调整.2.公有变量才会出现在Inspector面板.3.GUI控件的初始化和处理在OnGUI内完成.4.JavaScript的中文为UTF-8编码可 ...
- [原]Unity3D深入浅出 - 脚本开发基础(Scripts)
常用脚本事件: Update:每帧调用一次 Start:在第一次Update执行前调用 Awake:脚本实例在创建时调用 FixedUpdate:每个固定物理时间间隔调用一次 LateUpdate:每 ...
- paip.gui控件tabs控件加载内容的原理以及easyui最佳实现
paip.gui控件tabs控件加载内容的原理以及easyui最佳实现 //////////////tabs控件的加载 同form窗体一样,俩个方式 两个方式:一个是url,简单的文本可以使用这个,不 ...
- paip.gui控件form窗体的原理实现以及easyui的新建以及编辑实现
paip.gui控件form窗体的原理实现以及easyui的新建以及编辑实现 //////新建 与编辑 var EditForm=new Form_easyui(); if(row) ...
- Atitit.Gui控件and面板----数据库区-mssql 2008 权限 配置 报表查看成员
Atitit.Gui控件and面板----数据库区-mssql 2008 权限 配置 报表查看成员 1. 配置server连接权限 1 2. 配置数据库权限 1 3. 设置表格/视图安全性 2 1. ...
- Atitit.Gui控件and面板----web server区----- web服务器监控面板and控制台条目
Atitit.Gui控件and面板----web server区----- web服务器监控面板and控制台条目 1. Resin4.0.22 1 2. 查看http连接数::Summary>& ...
- Atitit gui控件定位解决方案
Atitit gui控件定位解决方案 1.1. 但是AUTOIT没有找图功能..可以请大侠们写一份这个UDF出来吗?1 1.2. ahk1 1.3. Java +opencv 模板匹配2 1.1. 但 ...
随机推荐
- hadoop 文件 复制 移动 FileUtil.copy
FileSystem fs = FileSystem.get(conf); Path pattern = new Path(resultViewPath + "phone*"); ...
- CentOS6.5下 yum安装LAMP
CentOS下yum安装LAMP 1. 用yum安装Apache,Mysql,PHP. 1.1安装Apache yum install httpd httpd-devel 安装完成后,用/etc/ ...
- Linux安装oracle 10g常见问题之——OUI-25031
OUI-25031:Some of the configuration assistants failed/cancelled. 这是安装过程中常见的错误之一. 引起此错误的原因:/etc/hosts ...
- RegisterClientScriptBlock CommandName 模块列 操作完成 提示
this.ClientScript.RegisterClientScriptBlock(this.GetType(), "Remind", "alert('获取成功!') ...
- [gradle] is applicable for argument types
error: is applicable for argument types: (org.eclipse.jetty.server.Request) 很显然这个错误是因为 不是静态方法造成的,改为静 ...
- 10个优秀的Objective-C和iOS开发在线视频教程
如果你自己开发iOS应用,你肯定会发现网上有很多资源.学习编程的一个最好的方法就是自己写代码,而开始写代码的最快的方式就是看其他人怎么写.我们从海量视频和学习网站中整理出了我 如果你自己开发iOS应用 ...
- ITaCS Change Password web part
http://changepassword.codeplex.com/ A webpart is used to change your sharepoint AD password.
- 南京邮电大学CTF隐写术部分Writeup
女神 听说这是女神的私房照,里面藏着flag哦 http://115.28.150.176/misc1.jpg 这个链接居然打不开,摔!万念俱灰!主办方可否给力点! P.S.为了方便日后学习,暂时列下 ...
- 基于Ogre的DeferredShading(延迟渲染)的实现以及应用
http://blog.sina.com.cn/s/blog_458f871201017i06.html 这篇文章写的不错,从比较宏观的角度说了下作者在OGRE中实现的延迟渲染
- 然爸读书笔记(2013-5)----Rework(重来)
(1)你没有必要耗尽你一生的积蓄,承担财务风险. (2)你可以一边继续日常工作,一边开始创业,这样随时都能有现金满足需要.你甚至不需要办公室. 现在可以在家工作,和从未见面离你千里之外的人合作. (3 ...