- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
三维虚拟引擎:Unity3d;5.Unity3D中的GUI设计;
·Unity的GUI系统是基于立即模式模型。一个单一界面元素的绘制和声明是一次性进行的,而不是通过一系列的消息来驱动界面。其中,OnGUI()函数是用于绘制GUI的常用函数,该函数和Update()函数类似,在每个游戏帧中,都会对这个函数调用至少两次,一次会在屏幕上绘制某个GUI元素,另一次来处理任何用户输入。
functionOnGUI(){
if(Button(Rect(10,10,50,20),QuitButton)){
Application.Quit();
}
}
·在这个示例中,一个新的按钮会在屏幕位置(10,10)上绘制,其宽为50像素,高为20像素,按钮上会显示“QuitButton”。当单机该按钮后,GUI.Button()函数就会返回True,这满足if语句的条件,随后会执行Application.Quit(),关闭当前游戏。
;
·按钮/重复按钮:当用户单击按钮时,按钮会返回True,并执行一些代码片段(如上页所示)。除了简单的文本词组以外,按钮也可以接受图像或是其他复杂的内容形式作为参数。普通按钮无论按下多久,这个动作只会在这个用户最后松开这个按钮时执行一次。重复按钮可以在用户按着它的时候持续激活,这种类型的按钮在蓄力或是用户需要计时的任何功能上很有用。
Rect()函数定义了用来显示按钮的矩形空间,其模式为(左x,左y,总宽度,总高度),即坐标点是以左上角的点为基准。所有类型的GUI控件都会使用Rect()函数。
;
·滑块:Unity为我们提供了一个基本的水平和垂直选项。滑块的当前位置作为一个浮点数从滑块函数中返回,使得用户可以单击并拖动它到新的位置。通过把滑块的当前值设置为返回值,滑块变的具有交互性。如果没有保存任何滑块函数的返回值,玩家就无法四处拖动,这使得滑块仅仅具有显示功能而不能作为一个交互式的对象。
;
·文本输入:有时需要捕捉用户的文本输入,比如保存一个角色的自定义名称。如果所输入的文本相对较短,可以使用一个单行的TextField来实现;如果输入的文本相对较多,则可以使用TextArea。前者只允许一行文本,而后者允许用户输入换行符。也可以通过函数可选的第三个整型参数为这两种类型的文本??入来制定一个最大的字符串长度。这两种文本区域都支持复制和粘贴功能。和滑块一样,如果想要这个控件具有交互性,需要返回并保存字符串。
·还有一些基本控件,由于在游戏中使用频率不高,因此不做赘述,详见参考书210页。
;
·Untiy的默认控件提供了一个预先制作的、简单的蓝色模版作为皮肤,但实际制作中我们很少直接使用默认皮肤。Unity通过GUIStyle和GUISkin让我们自定义外观。
·应用GUIStyle和GUISkin可以覆盖任意默认控件的外观,其中包含诸如贴图图片、文本颜色、字体等等相关选项,一次性定义一个风格并把它应用到多个控件上,这样可以节约很多时间。GUIStyle每次可以应用在一个类型的控件上,例如按钮或是滑块。GUISkin则可以接受更多的定制,一个皮肤是Unity中所定义的一组基本、默认的GUIStyle集合。
;
·定义定制的风格类似于将一张贴图赋给一个新材质一样。以按钮为例,它最重要的部分就是普通状态、悬浮状态和点击状态,只要分别为这三个部分的Background赋上新的贴图,一个自定义的按钮就基本完成了。其余还可以修改的内容有很多,常需要修改的还有字体(大小、对其方式、样式)、边缘、图片位置等。
·如果需要导入新字体,则将字体从控制面板下拷贝到Assets下的Fonts文件夹中,在Project视图中单击就能在Inspector面板中显示其属性了。
;
·在游戏中,屏幕上需要显示:
Widget当前生命和能量状态;遇到当前敌人的当前生命和能量状态;
Widget还有多少生命包和能量包;它收集到多少个螺丝刀和齿轮。
·在游戏中,我们需要至少两个脚本,其中一个用于定义所有的按钮、标签、框等,而另外一个进行绘制,并且需要判断什么时候绘制。其中定义的脚本名为“GUI_CustomControls”,而绘制的脚本名为“GUI_HUD”。
;工具栏面板
;玩家状态面板
;敌人状态面板
;敌人状态面板
;敌人状态面板
;PS:最后效果;
·弹出窗口和之前控件的绘制大同小异,无非是需要一个控制条件来控制它何时弹出,何时消失。
·比如案例中,当玩家进入CheckPoint后,会弹出一个按钮,点击按钮便会弹出一个商店的菜单。其中需要两个基本脚本,一个用于定义及绘制弹出窗口(GUI_WaypointStore),
您可能关注的文档
- 四年级下册单词过关公开课教案教学设计课件资料.docx
- 二上第二单元看拼音写词语公开课教案教学设计课件资料.docx
- 企业课堂是将课堂搬到企业开展教学活动公开课教案教学设计课件资料.docx
- 排球:多种传球技术运用方法评课报告公开课教案教学设计课件资料.docx
- 《唐吉诃德》第三十三章3公开课教案教学设计课件资料.doc
- 机械制造工艺测试题9公开课教案教学设计课件资料.doc
- 第2节 等差数列及其前n项和公开课教案教学设计课件资料.pptx
- 课时作业22 复数乘、除运算的三角表示及其几何意义公开课教案教学设计课件资料.pptx
- 基于产业学院视域的学生综合素养评价体系研究公开课教案教学设计课件资料.docx
- 【选考练习】2024届浙江省绍兴市高三二模政治试题(含答案)公开课教案教学设计课件资料.docx
文档评论(0)