[原]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. 但 ...
随机推荐
- 不加好友实现QQ在线代码状态临时会话
网友在介绍怎么样使用QQ来强制聊天,才想到以前一直遇到的QQ在线生成代码后,遇到的必须添加好友才能聊天的一个疑问. 公告:“QQ在线状态”V2.0正式发布,解决了QQ2009用户点击“在线状态”后须添 ...
- C语言控制语句总结(if else for switch while break continue)
一.if语句 1表达式 if(条件表达式) 语句 注: (1)条件表达式,一般为逻辑表达式或关系表达式,但也可以是任何数值类型,如整型.实型.字符型.指针型数据等. (2)语句,由于是C语言的语句,而 ...
- 1037. Magic Coupon (25)
#include<iostream> #include<vector> #include<stdio.h> #include<algorithm> us ...
- ISBN
问题描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位 ...
- gridview 一个列勾选框选中,同时选中同一行的另一列勾选框
<asp:TemplateColumn > <HeaderTemplate> 是否显示 <asp:CheckBox ID="chk_Show" sty ...
- Java中的break与continue区别
break跳出当前循环执行循环下面的程序, 如果break出现在嵌套循环的内层循环, 则break语句只会跳出当前层的循环; 当程序执行到continue时时, 则跳过本次循环程序重新回到循环开始继续 ...
- python 练习题
python是一个功能很强大的语言,他可以解决各种在数学问题,下面我分享一些练习题供大家参考: 有关正态分布的问题: # -*- coding: cp936 -*- import math a=0 u ...
- C# SqlConnection
public static ArrayList Connect(string connectionString, string commandText) { ArrayList retValList ...
- PAT-乙级-1018. 锤子剪刀布 (20)
1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩“锤子剪刀布”的游 ...
- smarty foreach 最全用法
<?php$search_condition = "where name like '$foo%' ";$sql = 'select contact_id, name, ni ...