最近在开始研究整个项目的开发!毕竟针对一些的开发,对我感觉没有整体感。所以就打算通过查看整体的开发的源代码来进一步的学习!所以这段时间都没有怎么更新博客!因为个人感觉还是要开发一个自己的游戏才行,山寨没关系,重要的是思想,感受一下那些大牛的设计的思想和代码的实现是一件很享受的事情!我推荐大家也可以这么做试试哈! ok,废话不多说啦!我们开始吧! 首先还是要感谢雨松的unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条(三十一)通过它的博客让我对这个场景的加载有了更深刻的感悟!
在我们的游戏开发过程中,场景间的交换是很正常的事情!但是并不是说我们实现了交换的效果就可以啦!我们在实现效果的同时也需要注意用户的体验和考虑机器的性能,同时也要考虑代码的优化,这样才能出更好的游戏。
在我们的开发过程中一般交换场景都是用Application.loadLevel("scenename");就可以轻松搞定啦!但是这种加载场景的方法只是适用于加载资源较少的场景,对于一个资源较大的场景的话,这个就容易造成界面的卡死,这样就对用户的体验感造成很大的伤害啦!
比如现在我们要从A场景加载到B场景,如果我们使用Application.LoadLevel("B");想象一下,这样的效果未免也太不理想啦!
所以我们在A,B的中见加入了一个新的场景,我们称之为loading场景,在俩种场景的过度,这样的感觉如何呢?首先你可以再loading场景中增加了很多花样比如可以显示一些游戏的提示语,可以显示不同的图片,来让用户度过这无聊的加载过渡期!想想一下,和上一个相比确实很不错啦!
貌似,感觉废话真的太多啦!好吧!直接上代码!
首先要定义一个全局的类,用来保存场景的名称!
[C#]
纯文本查看
复制代码
我们利用这个类中的global_name来进行保存要跳转到的场景!然后在A场景
[C#]
纯文本查看
复制代码
这样我们就进入loading场景啦!进入到加载的界面中来啦!下面我们需要通过loading 场景来加载B场景啦!
[C#]
纯文本查看
复制代码
ok,主体代码已经呈现啦!相信大家现在对异步加载有了自己的理解了吧!原理很简单,就是调用协程stratCoroutine()来进行处理异步加载Application.loadLevelAsync()。哦,对了还有一个重要的步骤,就是你加载的场景必须在Untiy里注册大体的步骤为file->BUild Setting ->Scences in Build 然后使用Add Current是加载当前场景,也可以直接将场景拖入!
作者:lmzqm
|
Unity3D——异步加载游戏场景loading界面的开发
最新推荐文章于 2022-09-23 14:21:58 发布