第3章GUI游戏界面(2)

2019-02-15 11:55

是有这样一个界面又怎么办呢?

这个界面一共有大约32个GUI控件,这还是可见的,加上那些不是当前页面的控件,累计已经远超100个控件了!

试想,我们如果要在一个脚本里面维护100多个控件,不管你的结构设计的是多么的精妙,也不知道要疯多少次!而且老的GUI是无法在编辑器中进行可视化的,也就是说任何一个GUI的尺寸,你都需要去一一尝试他的大小,这样的话,没人会在项目中使用自带的老GUI系统也是非常正常的事情了。

但是Unity4.6宣布了,Unity新的GUI系统,这让事情出现了转机,例如上面那个超过100个控件的GUI界面,是我在Unity5中使用新的GUI系统花了不到2个小时完成的。注意不只是布局和调节外观,还包括所有的逻辑。

GUI异军突起

Unity在4.6的时候就宣布了新的GUI系统,并且新的GUI系统是开源的,所有代码都用C#写成,这意味着如果我愿意,我可以添加修改任何我想要的GUI控件。但是在此笔者并

不会对这些源代码做任何解读,因为笔者也没有仔细看过,这里让我先来学习一下新GUI系统的基本用法吧。

新的GUI系统的GUI布局和外观设置机器的简单,每一个空间都是一个GamObject因为可以像其他的GameObject一样使用,包括添加控件,设置位置等等。

要创建新的GUI控件,只需要直接选择菜单GameObject—>UI在选择你要创建的对象即可。

首先你需要创建一个Canvas来容纳你创建的GUI控件,Canvas控件最重要的属性就是Canvas控件了:

在这里可以选择渲染模式,有3种模式可选: Screen-Space Overlay Screen-Space Camera World-Space

第一种是屏幕空间的GUI,这种GUI是渲染在屏幕空间的,也就是始终都被依附在窗口屏幕上,不会因为摄像机或者角色位置的变化而产生任何变化,就算你禁用场景的中的所有摄像机,这些GUI都还在,详细见下图,注意我已经在右边禁用了所有摄像机,然而GUI界面依然还在。

第二种是依附摄像机的屏幕空间GUI,这种GUI是渲染在摄像机前面的一块区域上面的,他会跟随你的摄像机的运动而运动,同时摄像机的任何变换都有可能因想到这个GUI,这个可以用来做类似《孤岛危机》中GUI的那种歪斜特效。下图将会帮助我理解这件事情:

第三种世界空间的GUI就很简单了,那就是在GameObject空间中渲染的GUI,这种GUI会存在于世界的某个固定位置,不会因为摄像机的移动而改变。这个懂事适合于用来做NPC人物头顶的对话框。参考下图:

这两个按钮一个在近处一个在远处,都是在世界空间中的。 下面我将要描述,我学习使用新GUI制作上述界面的过程:

首先,必然是添加一堆空间到编辑器中,按照想要的是顺序调节好位置,一个组的GUI都会作为一个PanelGUI的子对象对待,所以下图所有的按钮滚动条都被放置到Panel 1下:

这样移动panel就会同时移动所有的子控件了。

放好所有的控件,调好位置之后,调节那些控件的属性,以Button为例:

Buton这个控件还有一个子对象Text,用来描述Button上的字体,右边就是他的属性。 左边Button第一个属性Image定义了这个GameObject的显示样子,也就是显示成什么颜色,什么材质,使用什么源图片。下面的Button组件定义了一些针对Button的外观细节,OnClick则是关联UI逻辑的地方,左边的可以选择reltime还是editor抑或是全部,这决定了这个UI是在游戏中有效还是在编辑器中有效,下面将会选择此UI关联的对象,右边第一个决定了在点击后此UI控件执行的事件,这里选择的是sendmessage,右下是


第3章GUI游戏界面(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:备课模板111

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: