Unity 3D中的GUI设计公开课教案教学设计课件资料.pptxVIP

Unity 3D中的GUI设计公开课教案教学设计课件资料.pptx

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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),

您可能关注的文档

文档评论(0)

风的故乡 清 + 关注
实名认证
文档贡献者

风的故事

1亿VIP精品文档

相关文档