同步加载和unity异步unity3d 加载场景景的区别 unity

【Unity】unity5.3新API使用进度条,异步加载场景的代码 - 简书
【Unity】unity5.3新API使用进度条,异步加载场景的代码
using UnityE
using System.C
using UnityEngine.UI;
using UnityEngine.SceneM
public class LoadingScene : MonoBehaviour {
public Slider processB
private AsyncO
private int nowP
void Start()
StartCoroutine(loadScene());
/// &summary&
/// 加载完场景后就会跳转
/// &/summary&
/// &returns&&/returns&
IEnumerator loadScene()
async = SceneManager.LoadSceneAsync("sceneName");
async.allowSceneActivation =
void Update()
if(async == null)
// async.progress 你正在读取的场景的进度值
// 如果当前的进度小于0.9,说明它还没有加载完成,就说明进度条还需要移动
// 如果,场景的数据加载完毕,async.progress 的值就会等于0.9
if(async.progress & 0.9f)
toProcess = (int)async.progress * 100;
toProcess = 100;
// 如果滑动条的当前进度,小于,当前加载场景的方法返回的进度
if(nowProcess & toProcess)
nowProcess++;
processBar.value = nowProcess / 100f;
// 设置为true的时候,如果场景数据加载完毕,就可以自动跳转场景
if(nowProcess == 100)
async.allowSceneActivation =
VR项目研发主管
企业特聘VR专家
VR行业讲师
全国3d大赛特邀评审专家
“福建省青年岗位能手”称号
海峡两岸信息服务创新大赛暨福建省计算机软件设计大赛优秀指导老师
指导作品获得多项荣誉:
全国3D大赛一等奖1项
全国3D大赛三等奖4项
中国大学生服务外包创新大赛三等奖1项
海峡两岸信息服务创新大赛暨福建省计算机软件设计大赛一等奖3项,二等奖4项,三等奖5项
中国大学生挑战杯课外科技竞赛福建赛区二等奖1项 三等奖1项
福建省挑战杯大学生创业计划竞赛三等奖
福建省大学生智能设计大赛二等奖
福建省互联网+创新创业大赛铜奖
全国3D大赛福建赛区特等奖4项,一等奖8项,二等奖11项,三等奖5项扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
当前位置: &
查看: 9137|回复: 8
Unity3D——异步加载游戏场景loading界面的开发
本帖为抢楼帖,欢迎抢楼!&
16排名1昨日变化主题帖子积分
蛮牛币267982
在线时间2047 小时
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
最近在开始研究整个项目的开发!毕竟针对一些的开发,对我感觉没有整体感。所以就打算通过查看整体的开发的源代码来进一步的学习!所以这段时间都没有怎么更新博客!因为个人感觉还是要开发一个自己的游戏才行,山寨没关系,重要的是思想,感受一下那些大牛的设计的思想和代码的实现是一件很享受的事情!我推荐大家也可以这么做试试哈!
ok,废话不多说啦!我们开始吧!
首先还是要感谢雨松的研究院之异步加载游戏场景与异步加载游戏资源进度条(三十一)通过它的博客让我对这个场景的加载有了更深刻的感悟!
在我们的游戏开发过程中,场景间的交换是很正常的事情!但是并不是说我们实现了交换的效果就可以啦!我们在实现效果的同时也需要注意用户的体验和考虑机器的性能,同时也要考虑代码的优化,这样才能出更好的游戏。
在我们的开发过程中一般交换场景都是用Application.loadLevel(&scenename&);就可以轻松搞定啦!但是这种加载场景的方法只是适用于加载资源较少的场景,对于一个资源较大的场景的话,这个就容易造成界面的卡死,这样就对用户的体验感造成很大的伤害啦!
比如现在我们要从A场景加载到B场景,如果我们使用Application.LoadLevel(&B&);想象一下,这样的效果未免也太不理想啦!
所以我们在A,B的中见加入了一个新的场景,我们称之为loading场景,在俩种场景的过度,这样的感觉如何呢?首先你可以再loading场景中增加了很多花样比如可以显示一些游戏的提示语,可以显示不同的图片,来让用户度过这无聊的加载过渡期!想想一下,和上一个相比确实很不错啦!
貌似,感觉废话真的太多啦!好吧!直接上代码!
首先要定义一个全局的类,用来保存场景的名称!
[C#] 纯文本查看 复制代码using UnityE[/align]
[align=left]using SystemC[/align]
[align=left]public class Global{[/align]
[align=left]
public static string global_[/align]
[align=left]}
我们利用这个类中的global_name来进行保存要跳转到的场景!然后在A场景[C#] 纯文本查看 复制代码using UnityE
using SystemC
public class A : MonoBehavious{
void Start()
void Update()
void OnGUI()
if(GuiLayout.Button(&loading&,GuiLayout.Width(80),GuiLayout.Height(40)))
//点击加载按钮后进入加载界面
Golbal.Load_name = &B&;
Application.loadLevel(&loading&);//到加载界面B的场景
这样我们就进入loading场景啦!进入到加载的界面中来啦!下面我们需要通过loading 场景来加载B场景啦!
[C#] 纯文本查看 复制代码using UnityE
using SystemC
public class loadingScene : MonoBehavious{
private AsyneO//异步加载操作
//加载的进度
void Start()
startCoroutine(loading());//利用协程来进行加载,也就是异步加载
void Update()
//在这里我们可以实时的更新加载的进度主要通过
process = (int)(async.progress*100);
IEnumerator loading()
async = Application.LoadLevelAsync(Global.Load_name);
void OnGUI()
//在这里可以对显示一些提示或者一些图片
显示图片可以用GUI.DrawTextTure();显示提示可以使用GUI.Label();
ok,主体代码已经呈现啦!相信大家现在对异步加载有了自己的理解了吧!原理很简单,就是调用协程stratCoroutine()来进行处理异步加载Application.loadLevelAsync()。哦,对了还有一个重要的步骤,就是你加载的场景必须在Untiy里注册大体的步骤为file-&BUild Setting -&Scences in Build 然后使用Add Current是加载当前场景,也可以直接将场景拖入!
作者:lmzqm
unity 场景加载时间; 异步加载5x5的地形;unity 异步加载 卡;unity场景加载是否完成;unity 场景加载完毕;unity 场景加载;场景下载;异步加载空指针;unity3d 异步加载场景;unity加载场景进度条;unity 只加载场景;unity的loading加载显示资源数量;unity 异步加载图片;unity3d 异步加载本地图片;unity 异步;unity 加载场景 后;unity 加载自身场景完毕;unity3d 游戏界面;unity3d 重新加载场景
每日推荐:
蛮牛相关业务合作(市场合作/项目需求/人才招聘)联系-崇慕 QQ:
7排名<font color="#FF昨日变化主题帖子积分
蛮牛币3296
在线时间513 小时
第一个代码连网页标签都复制过来了,哈哈哈
每日推荐:
5559/1000排名<font color="#FF昨日变化3主题帖子积分
熟悉之中, 积分 559, 距离下一级还需 441 积分
熟悉之中, 积分 559, 距离下一级还需 441 积分
在线时间148 小时
留个名,,,项目中 很是需要阿 ..
每日推荐:
71925/5000排名<font color="#FF昨日变化1主题帖子积分
日久生情, 积分 1925, 距离下一级还需 3075 积分
日久生情, 积分 1925, 距离下一级还需 3075 积分
蛮牛币1648
在线时间539 小时
我进度条不准的问题是什么?就是进度条的值设置成progress的值,然后进度条满了之后,再需要等待3秒左右的时间才会进入,楼主遇到过么??
每日推荐:
71785/5000排名<font color="#FF昨日变化1主题帖子积分
日久生情, 积分 1785, 距离下一级还需 3215 积分
日久生情, 积分 1785, 距离下一级还需 3215 积分
在线时间536 小时
楼主写错很多代码&&哈哈~&&还好我用百度搜索找到了真确的代码
每日推荐:
7排名<font color="#FF昨日变化6主题帖子积分
在线时间37 小时
我进度条不准的问题是什么?就是进度条的值设置成progress的值,然后进度条满了之后,再需要等待3秒左右的 ...
请问层主是怎么取到progre的值的,我怎么取都取不到。
每日推荐:
7排名<font color="#FF昨日变化6主题帖子积分
在线时间37 小时
楼主写错很多代码&&哈哈~&&还好我用百度搜索找到了真确的代码
层主实现了进度条与异步加载进度同步了吗?我用网上的代码怎么实现不了
每日推荐:
61291/1500排名<font color="#FF昨日变化3主题帖子积分
蛮牛粉丝, 积分 1291, 距离下一级还需 209 积分
蛮牛粉丝, 积分 1291, 距离下一级还需 209 积分
蛮牛币4406
在线时间508 小时
你写的代码,我也是醉了,
每日推荐:
4343/500排名<font color="#FF昨日变化8主题帖子积分
四处流浪, 积分 343, 距离下一级还需 157 积分
四处流浪, 积分 343, 距离下一级还需 157 积分
在线时间178 小时
代碼要檢查在上傳阿 大哥
更正到我頭都暈了
每日推荐:
蛮牛论坛干货区作者
社区QQ达人
使用QQ帐号登录论坛的用户
购买游戏蛮牛书籍
连续签到30天请问在unity中重新加载场景,为什么会有很多东西不重置,怎么解决该问题?大神求解_unity吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:24,110贴子:
请问在unity中重新加载场景收藏
请问在unity中重新加载场景,为什么会有很多东西不重置,怎么解决该问题?大神求解
unity官方培训,0基础入学,先试学后决定,公开课随时听,这些都是免费的!unity官方培训,紧跟时代潮流,终身享有就业指导服务,工作轻松找,机遇无限.
试试异步加载场景
关注完美世界小说吧,并捧场5000T豆,
登录百度帐号推荐应用

我要回帖

更多关于 unity重新加载场景 的文章

 

随机推荐