UGUI之在场景中设置、修改标签和按钮
UnityGUI使用一个特殊的OnGUI()函数,在该函数中加入实现UI的脚本。
它一共有两种类型的接口:GUI.xxx()和GUILayout.xxx()。
第一种需要自动手写填写处于屏幕上的位置。我之前学的教程都是用这种方式的,参考代码如下:
void OnGUI()
{
//居中显示文字
GUI.skin.label.alignment = TextAnchor.MiddleCenter;
//设置字体大小
GUI.skin.label.fontSize = 50;
//创建一个标签,用于在指定位置显示 Game Over,这个位置和标签的大小由new Rect()确定,数据大小视需要而定
GUI.Label(new Rect(0,0,Screen.width,Screen,height),"Game Over");
//创建一个Button,当按下时触发事件
if(GUI.Button(new Rect(Screen.width * 0.5f - 150,Screen.height * 0.7f,300,40),"Try again"))
{
//...
}
}
第二种方法是Unity为我们自动排版的,我们只需要关心内容即可。它主要含有三个函数:
- GUILayout.Label(string str):标签,用于显示文本。输入的参数为需要显示地文本。
- GUILayout.Button(string str):按钮,用于触发事件,输入的参数为在按钮上显示的文本。它返回一个Bool值,表明是否按下了按钮。
- GUILayout.TextField(string str):文本区域,用于输入文本。输入的参数为显示地文本,返回经过用户输入改动后的文本。
参考代码如下:
string text = "";
string name = "";
void OnGUI()
{
//用标签显示文本
GUILayout.Label("请输入你的名字: ");
//用文本区域输入你的名字
text = Layout.TextField(text);
if(GUILayout.Button("提交"))
{
name = Text;
}
//当name不为空时,显示输入的文本内容
if(!string.IsNullOrEmpty(name))
{
GUILayout.Label("提交成功!名字:" + name);
}
}
此示例的显示结果如下:
注:该结果显示在场景的左上方,这是Unity自动排版的结果。更多内容等我学了再说。
UGUI之在场景中设置、修改标签和按钮的更多相关文章
- LoadRunner中Action的迭代次数的设置和运行场景中设置
LoadRunner中Action的迭代次数的设置和运行场景中设置 LoadRunner是怎么重复迭代和怎么增加并发运行的呢? 另外,在参数化时,对于一次压力测试中均只能用一次的资源应该怎么参数化呢? ...
- 在jsp页面中使用自定义标签
在某些场景中,自定义标签可封装大量代码,使页面变得更简洁,标签也可以很方便地在不同页面中实现通用而不必去粘贴大量的js代码.现在把最近做的一个自定义标签在这里总结一下.首先总结一下关于自定义标签的一些 ...
- Unity3D NGUI制作的Button放到场景中,按钮从2D变到3D
通常我们使用Button都是在UI界面,即NGUI的摄像机下,如果想换到场景中,即不让按钮以UI形式显现,而是和场景中的物体一起随着摄像机移动而缩小,放大. 很简单,把Button从NGUi的摄像机中 ...
- HTML中的<select>标签如何设置默认选中的选项
方法有两种. 第一种通过<select>的属性来设置选中项,此方法可以在动态语言如php在后台根据需要控制输出结果. 1 2 3 4 5 < select id = " ...
- html5之canvas困惑 在canvas标签内需要设置了宽跟高,如果在css中设置同样的宽跟高,画出来的图像变形了?
<canvas class="cvs"></canvas> 遇到的问题: 如css 中设.cvs{width:500px;height:400px;},也就 ...
- Fiddler中设置断点修改Request和Response
Fiddler中设置断点修改Request Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest 的任何信息包括host, cookie或者表单中的数据.设置断点 ...
- HTML之:让网页中的<a>标签属性统一设置-如‘新窗口打开’
在开发过程中,我们往往想在页面中,给<a>设置一个统一的默认格式,例如我们想让链接:“在新窗口打开”,我们就可以使用<base>标签 在网页中添加这段代码: <head& ...
- 遇到问题-----JS中设置window.location.href跳转无效(在a标签里或这form表单里)
问题情况 JS中设置window.location.href跳转无效 代码如下: ? 1 2 3 4 5 6 7 8 <script type="text/javascript&quo ...
- 【转】vue中动态设置meta标签和title标签
因为和原生的交互是需要h5这边来提供meta标签的来是来判断要不要显示分享按钮,所有就需要手动设置meta标签,标题和内容 //router内的设置 { path: '/teachers', name ...
随机推荐
- BZOJ 2763: [JLOI2011]飞行路线 最短路
2763: [JLOI2011]飞行路线 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/pr ...
- StarlingMVC Framework中文教程
配置与开始 将Starling项目配置为StarlingMVC项目,仅需几行代码.在继承于starling.display.Sprite的起始类里,创建一个StarlingMVC的实例,并传递给它三个 ...
- [原创]经历:asp.net oracle 部署问题以及解决方法
精简的美丽...... 一.环境 开发环境 win7 64bit Vs2010 Oracle 11g r2 64bit <inst ...
- Ruby on Rails Tutorial 第四章 Rails背后的Ruby 之 类
Ruby和其他面向对象的语言一样,使用类来组织方法,然后实例化类,创建对象.1.构造方法使用双引号是字符串的字面构造方法,也可以使用“具名构造方法”,即在类名上调用new方法 >> s=& ...
- Ruby on Rails Tutorial 第一章 之 搭建开发环境
云端开发环境,Cloud9(https://ide.c9.io/).这个开发环境预先安装好了Rails开发所需要的大多数软件,包括Ruby.RubyGems和Git,需要自己安装Rails. 1.安装 ...
- Helpers\Tags
Helpers\Tags The tags helper is a collection of useful methods: Tags::clean($data) Clean function to ...
- Koa2 源码解析(1)
Koa2 源码解析 其实本来不想写这个系列文章的,因为Koa本身很精简,一共就4个文件,千十来行代码. 但是因为想写 egg[1] 的源码解析,而egg是基于Koa2的,所以就先写个Koa2的吧,用作 ...
- MYSQL基础笔记(二)-SQL基本操作
SQL基本操作 基本操作:CRUD,增删改查 将SQL的基本操作根据操作对象进行分类: 1.库操作 2.表操作 3.数据操作 库操作: 对数据库的增删改查 新增数据库: 基本语法: Create da ...
- Python mongoDB 的简单操作
#!/usr/bin/env python # coding:utf-8 # Filename:mongodb.py from pymongo import MongoClient,ASCENDING ...
- MSSQL系统表常用操作
1:获取当前数据库中的所有用户表 select Name from sysobjects where xtype='u' and status>=0 2:获取某一个表的所有字段 select n ...