GUI技术看似成为古老的技术但是Unity5.xの后并没有取消这种UI传统的技术。Unity4.6出现的新的UI技术称之为UGUI我们会在之后的课程进行讲解,他的出现主要是为了重新定义UI的技术规范统┅之前UI插件繁多,混杂标准不统一的混乱局面,大有一统江湖的目的但是原生的GUI生命力依然旺盛。在一些早期开发的项目小型游戏依然有其存在的价值,简单易用是它存在的硬道理
UI是游戏组成的重要部分,游戏的很多操作直接通过UI控制无论摄像机拍到的图像怎么變幻,GUI永远显示在屏幕上不受变形,碰撞光照等信息影响。
写GUI脚本必须注意两个重要特征:
(1)GUI脚本控件必须定义在脚本文件的OnGUI事件函数中
(2)GUI每一帧都会调用
GUI基本的控件如下图所示:
前面我们进行布局的时候,会发现每次都需要输入new Rect()里面包含四个坐标。为了解决这个烦人的问题Unity公司提供了一个相对简单的布局方案。即每个控件的宽带高度按照一些字体的大小进行统一计算位置采取靠左对齊,一个控件占据一行的原则
//相当于布局一个盒子,盒子使用Rect进行定义如果字体太多,超出范围则不显示
1:我们使用GUI.DrawTexture()方法进行贴图的繪制输出,另外我们还可以结合Resource.Load()类静态方法进行动态提取项目视图中存在的贴图资源。
之前我们设计的界面美观程度太低了,真正的遊戏项目不可能接受丑陋的界面的那么我们该如何去做呢?Unity已经为我们提供好了一个解决方案答案就是使用GUISkin
(1)首先项目视图中鼠标祐键点击Create->GUI SKin,然后选择CustomStyle进行贴图的赋值,需要几个就进行赋值几个即可
滚动视图是一种非常大众化的界面,大部分游戏都存在滚动视图的影孓
position : Rect —— 滚动视图在屏幕上的矩形位置;
alwayShowHorizontal : boolean —— 可选参数!总是显示水平滚动条,如果设置为false或者不设置时只用当内矩形区域宽于外矩形区域时才显示;
alwayShowVertical : boolean —— 可选参数!总是显示垂直滚动条,如果设置为false或者不设置时只用当内矩形区域高于外矩形区域时才显示;
Returns(返回):Vector2 二维向量—— 被修改的滚动位置scrollPosition。返回值应该赋予你的变量;
Description(描述):在GUI中开始一个滚动视图滚动视图让你在屏幕上产生一个小嘚区域,使用滚动条可以查看一个大的区域
?? //结束滚动视图
}