1、Label:标签控件,可以在游戏中用来展示文本字符串信息,不仅可以写字还可以贴图片。

2、Button:按钮控件,一般分图片按钮和普通的按钮,还有一个连续按钮RepeatButton注意,这个在WebForm里面是没有的。

Ps:用GUI.Button(new Rect(10,200,70,30),"文字按钮" )来添加按钮时这个方法是有返回值的bool类型;

3、TextField:主要用于监听用户输入的信息。

Ps:GUI.TextField(),返回用户输入的字符串信息,GUI.PasswordField()

4、ToolBar:用于创建工具栏,以Tab页面形式来展示,选择任意一项后可返回所选的ID。

5、Slider控件

  基本知识:Slider控件由滑块与滑动条组成;按展示方式划分为:水平滑动条(HorizontalSlider [ˌhɔriˈzɔntəl] adj.水平的,卧式的;地平线的),垂直滑动条(VerticalSlider[ˈvɜ:tɪkl]adj. 垂直的,竖立的 ),二者之间的用法基本相同;

  作  用:常使用滑动条来调节音量或者颜色等

6、ScrollView控件 =>相当于webform中的滚动条

  使用条件:若游戏界面中的GUI控件过多,超出了屏幕的显示范围,就需要使用ScrollView控件来完成它的展示效果。

7、群视图:GroupView控件

  1、群组视图(GroupView控件)可将多个视图全部放在一个群组当中。将视图添加进群组当中后,群组中任何视图的坐标都是相对坐标,它是相对群组视图左上角的坐标。

   2、使用GUI.BeginGroup()方法可以创建一个群组视图,但是必须以GUI.EndGroup()方法结束群组视图

8、窗口

  窗口在游戏开发中并不陌生,所有视图都需要依赖窗口来显示,我们可以把窗口理解为视图的父类。 游戏视图,它们都属于窗口的子类。游戏界面可以由若干个窗口组成,窗口又由若干个视图组成。

9、GUI Skin 为控件添加漂亮的皮肤

  在Project视图中点击“Create”→“GUI Skin”菜单项,创建一个GUI Skin。使用GUI Skin,可以修改任何系统提供的控件皮肤。

 

 Font:可设置系统字体或者自定义字体。
 Box:可设置盒子的显示皮肤。
 Button:可设置按钮的显示皮肤。
 Toggle:可设置选择框的显示皮肤。['tɒɡl]
 Label:可设置文本框的显示皮肤。
 Text Field:可设置输入框的显示皮肤。
 Text Area:可设置多行输入框的显示皮肤。
 Window:可设置窗口的显示皮肤。
 Horizontal Slider:可设置水平滚动条的显示皮肤。[ˌhɔriˈzɔntəl] 
 Horizontal Slider Thumb:可设置水平滚动条上滑动块的显示皮肤。['slaɪdə(r)]n. 滑雪者,滑冰者;
 Vertical Slider:可设置垂直滑动条的显示皮肤。[ˈvɜ:tɪkl]
 Vertical Slider Thumb:可设置垂直滑动条上滑动块的显示皮肤。[θʌm]n. 拇指;(手套的)拇指部份
 Horizontal Scrollbar:可设置水平滚动条的显示皮肤。
 Horizontal Scrollbar Thumb:可设置水平滚动条上滑块的显示皮肤。
 Horizontal Scrollbar Left Button:可设置水平滚动条左边按钮的显示皮肤。[skrəʊl]
 Horizontal Scrollbar Right Button:可设置水平滚动条右边按钮的显示皮肤。
 Vertical Scrollbar:可设置垂直滚动条的显示皮肤。
 Vertical Scrollbar Thumb:可设置垂直滚动条上滑块的显示皮肤。
 Vertical Scrollbar Up Button:可设置垂直滚动条上边按钮的显示皮肤。
 Vertical Scrollbar Down Button:可设置垂直滚动条下边按钮的显示皮肤。
 Scroll View:可设置滚动视图的显示皮肤。
 Custom Styles:自定义风格显示皮肤。
 Settings:一些其他设置。

学习宣老师的《Unity3D游戏开发》,老师用到是js写的,我这边C# 经运行暂时么发现问题

using UnityEngine;
using System.Collections; public class Csharp3_1 : MonoBehaviour
{ #region 只有公有变量才可以在编辑器中以拖曳对象或输入的形式赋值。
/// <summary>
/// 接收外部赋值字符串
/// </summary>
public string str = string.Empty;
/// <summary>
/// 接收外部赋值贴图
/// </summary>
public Texture imageTexture;
#endregion /// <summary>
/// 贴图宽度
/// </summary>
private int imageWidth;
/// <summary>
/// 贴图高
/// </summary>
private int imageHeight;
/// <summary>
/// 当前屏幕宽度
/// </summary>
private int screenWidth;
/// <summary>
/// 当前屏幕高度
/// </summary>
private int screenHeight; //时间计数器
private int frameTime; public Texture2D buttonTexture; #region TextField
private string userName;
private string pwd;
private string message;
#endregion #region ToolBar //工具栏选择按钮的ID
private int sltID; //工具栏显示按钮的字符串
private string[] barResource; //选择按钮是否被按下
private bool sltToggle0, sltToggle1;
#endregion #region 5、Slider
//定义成公共的,否则滚动条无法拖动
public float verticalValue = 0.0f;//垂直、纵向滑动条【ˈvə:tikəl]
public float horizontalValue = 0.0f;//横向滑动条 [ˌhɔriˈzɔntəl]
#endregion #region 6 ScrollView
public Vector2 scrollPostion2;
#endregion #region 7 GroupView
//贴图
public Texture2D texture1;
public Texture2D texture2;
#endregion #region 8窗口
//默认窗口位置
Rect window1 = new Rect(, , , );
Rect window2 = new Rect(, , , );
#endregion #region 9GUISkin
public GUISkin guiSkin;//自定义皮肤
private bool isSelect = false;//单选控件是否被选中
public Rect rect = new Rect(, , , );//拖动窗口的位置
public string guiString = "请输入文字";
#endregion // Use this for initialization
/// <summary>
/// 该方法只执行一次,所以需要将初始化的相关代码都放在Start()方法中
/// </summary>
void Start()
{
////得到屏幕宽高
screenWidth = Screen.width;
screenHeight = Screen.height; ////得到图片宽高
imageHeight = imageTexture.height;
imageWidth = imageTexture.width; str = "请您点击按钮"; #region TextField
userName = "请输入您的姓名";
pwd = "请输入密码";
message = "请输入正确的用户名及密码!"; #endregion #region ToolBar sltID = ;
barResource = new string[] { "第一个工具栏", "第二个工具栏", "第三个工具栏", "第四个工具栏" };
sltToggle0 = false;
sltToggle1 = false; #endregion #region 6 ScrollView
//初始化滚动条位置
scrollPostion2 = new Vector2(, );
#endregion } // Update is called once per frame
void Update()
{ }
/// <summary>
/// 界面绘制方法,所有GUI的绘制都需要在这个方法中实现
/// </summary>
private void OnGUI()
{
//将文字内容显示在屏幕中
//GUI.Label(new Rect(100, 10, 100, 30), str);
//GUI.Label(new Rect(100, 40, 100, 30), "当前屏幕宽:" + screenWidth);
//GUI.Label(new Rect(100, 70, 100, 30), "当前屏幕高:" + screenHeight);
////将贴图显示在屏幕中
//GUI.Label(new Rect(100, 100, imageWidth, imageHeight), imageTexture); #region Button
//if (GUI.Button(new Rect(10, 50, buttonTexture.width, buttonTexture.height), buttonTexture))
//{
// //点击按钮修改提示信息
// str = "您点击了图片按钮";
//} ////设置按钮中文字的颜色
//GUI.color = Color.blue;
////设置按钮的背景色
//GUI.backgroundColor = Color.red;
//if (GUI.Button(new Rect(10, 200, 70, 30), "文字按钮"))
//{
// //点击按钮修改提示信息
// str = "您点击了文字按钮";
//} //GUI.color = Color.yellow;
////设置按钮的背景色
//GUI.backgroundColor = Color.white; //if (GUI.RepeatButton(new Rect(10, 250, 100, 30), "按钮按下中"))
//{
// //点击按钮修改提示信息
// str = "按钮按下中的时间:" + frameTime;
// frameTime++;
//}
#endregion #region TextField //GUI.Label(new Rect(10,10,Screen.width,40),message );
//if (GUI.Button(new Rect(10,120,100,50),"登录" ))
//{
// message = "您输入的用户名为:" + userName + ";您输入的密码为:" + pwd;
//} //GUI.Label(new Rect(10,40,50,30),"用户名:" );
//GUI.Label(new Rect(10,80,50,30),"密 码:" ); //GUI.TextField(new Rect(70, 40, 200, 30), userName, 10);
//GUI.PasswordField(new Rect(70, 80, 200, 30), pwd , '*' ,12); #endregion #region ToolBar //var oldSltID = sltID;
////重新计算本次工具栏选择的ID
//sltID = GUI.Toolbar(new Rect(10, 10, barResource.Length*100, 30), sltID, barResource);//默认选择哪个
////如果两次选择的是不同的工具栏,将选择按钮全部释放掉
//if (oldSltID!=sltID)
//{
// sltToggle0 = false;
// sltToggle1 = false;
//}
////根据工具栏选择的ID显示不同的信息
//switch (sltID)
//{
// case 0:
// sltToggle0 = GUI.Toggle(new Rect(10, 50, 150, 30), sltToggle0, "第一个工具栏单项选择——1");
// sltToggle0 = true;//是否选中
// sltToggle1 = GUI.Toggle(new Rect(10, 80, 150, 30), sltToggle1, "第一个工具栏单项选择——2");
// break;
// case 1:
// sltToggle0 = GUI.Toggle(new Rect(10, 50, 150, 30), sltToggle0, "第二个工具栏单项选择——1");
// sltToggle1 = GUI.Toggle(new Rect(10, 80, 150, 30), sltToggle1, "第二个工具栏单项选择——2");
// break;
// case 2:
// sltToggle0 = GUI.Toggle(new Rect(10, 50, 150, 30), sltToggle0, "第三个工具栏单项选择——1");
// sltToggle1 = GUI.Toggle(new Rect(10, 80, 150, 30), sltToggle1, "第三个工具栏单项选择——2");
// break;
// case 3:
// sltToggle0 = GUI.Toggle(new Rect(10, 50, 150, 30), sltToggle0, "第四个工具栏单项选择——1");
// sltToggle1 = GUI.Toggle(new Rect(10, 80, 150, 30), sltToggle1, "第四个工具栏单项选择——2");
// break;
//}
#endregion #region 5 Slider
//verticalValue = GUI.VerticalSlider(new Rect(25, 25, 30, 100), verticalValue, 100, 0);//计算滑动进度
//horizontalValue = GUI.HorizontalSlider(new Rect(50, 25, 100, 30), horizontalValue, 0.0f, 100.0f);
//GUI.Label(new Rect(10, 150, Screen.width, 30), "纵向滑动条当前进度:" + verticalValue + "%");
//GUI.Label(new Rect(10, 180, Screen.width, 30), "横向滑动条当前进度向滑动条当前进度:" + horizontalValue + "%");
#endregion #region 6 ScrollView
////开始滚动视图
//Vector2 vector2 = GUI.BeginScrollView(new Rect(0, 0, 200, 200), scrollPostion2, new Rect(0, 0, Screen.width, 300), true, true);
//GUI.Label(new Rect(100,40,Screen.width,30),"测试滚动视图,测试滚动视图,测试滚动视图,测试滚动视图。" );
////结束滚动视图
//GUI.EndScrollView();
#endregion #region 7GroupView
////开始这个群组
//GUI.BeginGroup(new Rect(10, 50, 200, 400));//创建一个群组视图,但是必须以GUI.EndGroup()方法结束群组视图
////显示贴图,坐标为相对群组的点(10,50)的坐标
//GUI.DrawTexture(new Rect(10,20,texture1.width,texture1.height),texture1 );
////标签提示信息
//GUI.Label(new Rect(10, 150, 100, 40), "群组视图1");
////按钮
//GUI.Button(new Rect(10, 190, 100, 40), "按钮1");
////结束这个群组
//GUI.EndGroup(); ////开始第二个群组 同上
//GUI.BeginGroup(new Rect(300,0,500,400));
//GUI.DrawTexture(new Rect(10,20,texture2.width,texture2.height),texture2 );
//GUI.Label(new Rect(10, 150, 100, 40), "群组视图2");
//GUI.Button(new Rect(10, 190, 100, 40), "按钮2");
//GUI.EndGroup();
#endregion #region 8窗口 //GUI.Window(1, window1, OneWindow, "我是第一个窗口");
//GUI.Window(2, window2, TwoWindow, "我是第二个窗口"); #endregion #region 9GUISkin GUI.skin = guiSkin;//设置GUI皮肤为自定义皮肤
GUI.Button(new Rect(, , , ), "自定义按钮");
isSelect = GUI.Toggle(new Rect(, , , ), isSelect, "单选按钮");////单项选择
guiString = GUI.TextField(new Rect(, , , ), guiString, );//输入框
rect = GUI.Window(, rect, GuiWindow, "GUI窗口");//注册窗口 #endregion
}
/// <summary>
/// 窗口1
/// </summary>
/// <param name="id"></param>
private void OneWindow(int id)
{
GUI.Box(new Rect(, , , ), "这个窗口的ID是:" + id);
if (GUI.Button(new Rect(, , , ), "普通按钮1"))
{
Debug.Log("窗口ID = " + id + "按钮被点击");
}
}
/// <summary>
/// 窗口2
/// </summary>
/// <param name="id"></param>
private void TwoWindow(int id)
{
GUI.Box(new Rect(, , , ), "这个窗口的ID是:" + id);
if (GUI.Button(new Rect(,,,),"普通按钮2" ))
{
Debug.Log("窗口ID = " + id + "按钮被点击");
}
}
/// <summary>
/// 9GUI窗口
/// </summary>
/// <param name="id"></param>
private void GuiWindow(int id)
{
GUI.DragWindow();//创建一个可以自由拖动的窗口
GUI.Button(new Rect(, , , ), "拖动的窗口按钮");
}
}

Unity3D笔记六 GUI游戏界面的更多相关文章

  1. 《MFC游戏开发》笔记六 图像双缓冲技术:实现一个流畅的动画

    本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9334121 作者:七十一雾央 新浪微博:http:/ ...

  2. java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

    java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...

  3. Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  4. Python学习笔记六

    Python课堂笔记六 常用模块已经可以在单位实际项目中使用,可以实现运维自动化.无需手工备份文件,数据库,拷贝,压缩. 常用模块 time模块 time.time time.localtime ti ...

  5. Typescript 学习笔记六:接口

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  6. Django开发笔记六

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.登录功能完善 登录成功应该是重定向到首页,而不是转发 ...

  7. python3.4学习笔记(六) 常用快捷键使用技巧,持续更新

    python3.4学习笔记(六) 常用快捷键使用技巧,持续更新 安装IDLE后鼠标右键点击*.py 文件,可以看到Edit with IDLE 选择这个可以直接打开编辑器.IDLE默认不能显示行号,使 ...

  8. Go语言学习笔记六: 循环语句

    Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...

  9. 【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

随机推荐

  1. catalina.home和catalina.base这两个属性的作用

    catalina.home和catalina.base这两个属性仅在你需要安装多个Tomcat实例而不想安装多个软件备份的时候使用,这样能节省磁盘空间.以Tomcat6.0为例,其Tomcat目录结构 ...

  2. linux -- chown修改文件拥有者和所在组

    chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID:组可以是组名或者组ID:文件是以空格分开的要改变权限的文件列表,支持通配符.系统管理员经常使用chown命令,在将文件拷贝 ...

  3. erlang工具:Sublime Text的插件

    SublimErl  :https://github.com/ostinelli/SublimErl   (推荐,操作较简单)                                      ...

  4. CIRI 识别circRNA的原理

    CIRI 根据circRNA 连接点处的reads来识别circRNA, 在连接点处的reads 其比对情况非常特殊: CIRI 根据3种模型来识别circRNA, 连接点处的read 叫做junct ...

  5. CentOS后台运行和关闭、查看后台任务命令

    fg.bg.jobs.&.nohup.ctrl+z.ctrl+c 命令 一.& 加在一个命令的最后,可以把这个命令放到后台执行,如 watch -n 10 sh test.sh &am ...

  6. struts2将数据通过Json格式显示于EasyUI-datagrid数据表格

    1.搭建ssh开发环境 2.写好Dao.service等方法 3.建立DTO数据传输对象: package com.beichende.sshwork.user.web.dto; import jav ...

  7. 提取Unity游戏资源和脚本

    UnityStudio UnityStudio可以直接在自己的软件上查看图片.shader.文本.还能直接播放音频.甚至还能看场景Hierarchy视图的树状结构.强烈推荐用UnityStudio. ...

  8. C++ 对象间的赋值与拷贝构造函数

    1.对象间的赋值 /***A.h文件***/ #pragma once class A { public: int va; A(void); A(char* name); A(const A& ...

  9. oracle如何将am,pm时间字符串改为时间格式

    问题: 解决办法: 1.param["OPT_DATE"] = DateTime.Parse(dt.Rows[0]["CREATED_ON"].ToString ...

  10. JQuery------jQuery.parseHTML()的使用方法

    代码: $(document).ready(function () { var data = jQuery.parseHTML("<p>你好</p>"); ...