从品牌网站建设到网络营销策划,从策略到执行的一站式服务
win10
unity2018.2.6
加载场景现在习惯用异步加载
AsyncOperation ao = SceneManager.LoadSceneAsync(string SceneName);
写在协程里,而从ao中可以获得加载进度
float progress = ao.progress;
这样可以控制加载进度条,或者文字显示百分比
按照网上很多事例的同样用法,一般是先把自动加载场景关掉
ao.allowSceneActivation = false;
也就是说,加载完成,也不跳转场景,需要手动控制
当然这里有个小抗就是这个false要在加载进度在90%以下
如果到了90%以后,再设置为true,也不会跳转
我原先的做法就是在协程里设while循环,里面判断是否到了90%,到了则跳出循环并设置为true,然后就自动加载了。
while(ao.progress<0.9f)
{
//……
}
ao.allowSceneActivation = true;
从表现上来看,没有任何问题
但是这里有个小坑,尤其是webgl端要注意的是如果一开始设置
ao.allowSceneActivation = false;
则加载新场景会大量的占用内存,对于webgl端所运行的浏览器来说,如果场景大,那根本是直接奔溃。
所以,正确做法就是一开始就设置为true
ao.allowSceneActivation = true;
反正是异步的,加载动画什么的也不会卡,关键是不会莫名其妙的占用大量内存,当然这么说是因为加载场景时采用这两种不同策略,为什么内存的占用会差距如此之大,这个机制不太了解。
其实不论发布什么平台,都是这样,但是pc端内存大了也抗的住,而webgl端就太脆弱了,一定要注意。
刚刚想到另一点,就是如果把场景打成ab包进行加载,也是会巨量占用内存,之前做的webgl项目,场景比较大,这样加载浏览器根本无法承受(除非是非常小的场景)
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图