Loading界面的制作(一)

由于本周开会对于《音之国度》游戏的整体流程又一次地进程了更新和确认,所以得到游戏的UI流程如下:

Loading界面的制作(一)_第1张图片

在登录界面和正式的新手引导之间,由于游戏加载时间比较长,直接跳转可能会出现卡顿的现象,导致游戏画面停顿在登录界面,造成不好的交互体验,所以决定在登录界面和新手引导之间加入一个加载界面。

加载界面由背景和进度条组合而成。背景由本制作组的画师绘制而成,背景上还会有滚动的文字,向玩家提供一些游戏小贴士。

对于进度条,需要用到异步加载的方法。我将进度条的制作分成了以下几步:


1、首先对加载的场景进行绘制:

利用NGUI的texture和背景图进行组合,制作出加载场景。需要注意的是,如果想要使屏幕的分辨率自适应,就需要给他加一个Stretch。


* 所谓的自适应,就是指,如果你的图片使960*640或者其他分辨率,而你的手机屏幕不是该尺寸时需要使用的方法。现在的科技发展迅速,手机款式推陈出新的速度也很快,面对各种大小尺寸的手机屏幕,要将图片处理成不同分辨率是一件很麻烦的事情。如果没有进行良好的处理,那么很有可能出现运行程序时,手机上有难看的黑边或者游戏内容显示不全的现象。而NGUI里有一种很好解决该问题的方式。就是添加一个Stretch。


点击Anchor之下的Panel,选择Component-> NGUI->UI->STRETCH,你会发现在Inspector面板上出现了一个新的UIStretch脚本,然后进行参数设置。比较方便的参数设置方法为,将Style设置为Both,表示长宽都能够进行拉伸,Relative Size那里,将x设置为图片长度的倒数,y设置为图片宽度的倒数。Loading界面的制作(一)_第2张图片


2、异步加载游戏场景

比较简单的Application.LoadLevel的方法来加载游戏场景是同步的,也就是说这种方法需要把所有的游戏场景都打包,对于资源小的场景来说还好,但是如果场景的资源比较大,那么加载资源的时候就会让你的游戏卡住,知道新场景的全部资源加载完成。


这种方法虽然对于编程来说比较简单,但是对于玩家来说,游戏体验是非常不好的。


对于Unity来说,没有多线程的概念,无法开两个线程,分别用于处理数据加载和用动画提示玩家游戏的进度加载。不过Unity里也有协同程序和异步加载关卡后台加载场景的方法。


所谓的协同程序,就是StartCoroutine方法:一个协同程序在执行过程中,可以在任意位置使用yield语句。yield的返回值控制何时恢复协同程序向下执行。协同程序在对象自有帧执行过程中堪称优秀。协同程序在性能上没有更多的开销。StartCoroutine函数是立刻返回的,但是yield可以延迟结果。直到协同程序执行完毕。


而异步加载关卡允许你在后台加载将要出现的新界面的资源,并进行协同利用,利用这个方法,你就可以在显示界面上利用进度条和动画,来告诉玩家游戏的加载进度,同时在后台协同处理加载的内容。


本次博客的内容就记录到此处,具体的代码编写内容将在下一次博客的更新中展示,敬请期待。


你可能感兴趣的:(Loading界面的制作(一))