第1章 回顾与望.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
·PAGE 40· Unity UI设计 ·PAGE 39· 第1章 回顾与展望 第1章 回顾与展望 最新的Unity UI系统经过开发人员多年研发方得以面世(开发过程受到了预算紧缩的考验),其中包含了诸多最新特性并以免费方式提供给广大用户。 在讨论新系统之前,需要对遗留GUI系统(即旧系统,具有向后兼容之特性)予以回顾,进而在此基础上理解新系统的功能和应用,而传统教程还停留在遗留GUI阶段。 在读者理解了遗留系统后,本书将对新系统加以重点分析,这也是后续内容的主要工作。 本章主要涉及以下内容: Unity遗留GUI系统的回顾。 与遗留GUI系统相关的建议、技巧和讲解。 新系统特性概览。 购买 Packt 出版社书籍的读者可通过个人账号在处下载代码文件。另外,读者还可访问/support,经注册后可通过邮件方式直接获得相关文件。除此之外,作者还提供了支持论坛,读者可直接向作者进行提问;另外,论坛中还包含了相关的注意事项,对应网址为http://bit.ly/Unity3DUIEssentialsForums。 1.1 发 展 状 况 Unity的遗留GUI系统历经多年发展添加了诸多新特性,并对性能问题有所改善。考虑到在原始实现基础上得以完成,因而系统包含了某些限制条件,且需要向后兼容(类似于Windows操作系统,时至今日,该系统仍然需要服务于采用BASIC语言编写的程序。关于BASIC语言,读者可访问/wiki/BASIC)。这里并非认为遗留系统一无是处,与Unity 4.x和Unity 5.x相比,该系统在新特性方面有所欠缺。在新系统中,采用了更为高级的设计方案以及全新的核心内容。 遗留系统中的主要缺陷在于,该系统仅在3D元素之上的屏幕空间内进行绘制(而非其“内部”)。对于菜单或标题中的覆盖图,这并无太大问题;而在3D场景中,其整合方式将变得较为困难。 关于世界空间和屏幕空间的更多内容,读者可参考Unity Answers,对应网址为/questions/256817/about-world-space-and-local-space.html。 因此,在讲述新系统的优点之前,首先需要考查该系统的根源(如果读者对遗留系统较为熟悉,则可忽略本节内容)。 本书将遗留GUI简称为GUI。相应地,当讨论新系统时,该系统则称作UI或Unity UI。用户在阅读时不可将其混为一谈。 另外,读者在Web或论坛中可能还会遇到uGUI这一类术语,该术语表示Unity UI新系统的研发代码。 GUI控件相关介绍如下。 遗留系统空间针对标题应用提供了基本的风格化控制。 遗留系统中的全部控件均采用内建的OnGUI方法,并在GUI渲染阶段进行绘制。在相关示例中,全部控件实例位于Assets\BasicGUI.cs脚本中。 针对功能性GUI空间,场景中的相机须于其上绑定GUILayer组件。默认条件下,该组件位于场景中的Camera对象上,且多数情况下用户不会对其有所察觉。若将其移除,则GUI工作时需要再次将其加入。 针对OnGUI委托处理程序,该组件可视为钩子程序,以确保其在每帧内被调用。 类似于脚本中的Update方法,如果渲染操作降低了运行速度,OnGUI方法将在每帧内多次被调用。当构建自己的遗留GUI脚本时,用户应对此引起足够的重视。 原GUI中的控件包含以下内容: 标签 纹理 按钮 文本框(包括单行文本框、多行文本框及密码文本框等) 列表框 工具栏 滑块 滚动条 窗口 下面将对此进行逐一考查。 对于GUI脚本中的示例项目,全部代码均位于下载代码中的Assets\Scripts文件夹中。 当读者对此进行尝试时,须创建新项目、场景以及脚本,针对脚本中的各个控件设置代码,最后还需将该脚本绑定至相机对象上(将其从项目视图拖曳至场景层次结构中的Main Camera GameObject中)。随后,可运行该项目,或者利用[ExecuteInEditMode]属性修饰当前类,进而在游戏视图中对其进行查看。 1. Label控件 大多数GUI系统中均会首先介绍Label控件,这一类控件提供了风格化的控制效果,并在屏幕上显示只读文本。脚本中一般会包含下列方法: void OnGUI() { GUI.Label(new Rect(25, 15, 100, 30), Label); } 这将生成如图1-1所示的屏幕显示效果。 图1-1 Label控件可通过guiText GameObject属性(guiText.font)或GUIStyle(稍后将对此加以讨论)调整字体设置。 当设置脚本中的guiText.font时,可在脚本中使用下列代码,对应位置可位于Awake/Start函数中,或者绘制下一个文本段(采用另一种字体)之前。 public Fon

文档评论(0)

yx118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档