Unity场景加载与进度条
来源:互联网 发布:临沂关键词优化 编辑:程序博客网 时间:2024/05/16 09:11
因为项目的一个场景比较大,在加载的时候有明显的等待,所以决定做个进度条。
讲道理做了多媒体之后已经很久没有在一个项目里用到多个场景了,上一次用的时候还是application.loadlevel,现在已经改成了SceneManager。
直接加载场景
1.using UnityEngine.SceneManagement;
2.SceneManager.LoadScene(index/scenename)
做场景加载要确保场景已经被添加进了build setting的scenes in build中
加个进度条
首先将SceneManager.LoadScene换成SceneManager.LoadSceneAsync,它返回一个AsyncOperation类型的返回值,这个返回值包括了progress,isdone属性,还可以设置是否场景加载完就跳转(有的游戏是场景加载完需要按一个按钮才进入场景,有的是直接进入)
然后需要根据AsyncOperation的progress修改ui的值,实现进度条
进度条在其实就是讲一张图片的image type设置为filled,然后选择水平,然后修改它的fill amount
我看到网上有一篇博客介绍了如何让进度条更平滑,感觉还不错,只是贴代码的时候估计没有测试,数据类型转换都不对,导致一直死循环。
代码如下
IEnumerator startLoad(string sceneName) { int displayProgress = 0; int targetProgress = 0; AsyncOperation ao = SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Single); ao.allowSceneActivation = false; while (ao.progress < 0.9f) { Debug.Log(ao.progress); targetProgress = (int)(ao.progress * 100); while (displayProgress < targetProgress) { displayProgress++; //Debug.Log(displayProgress); percentText.text = displayProgress + "%"; loadBar.fillAmount = (float)displayProgress / 100; yield return new WaitForEndOfFrame(); } //yield return new WaitForEndOfFrame(); } //Debug.Log(targetProgress); targetProgress = 100; while (displayProgress < targetProgress) { displayProgress++; //Debug.Log(displayProgress); percentText.text = displayProgress + "%"; loadBar.fillAmount = (float)displayProgress / 100; yield return new WaitForEndOfFrame(); } ao.allowSceneActivation = true; }
补充,我使用几个cube测试场景跳转的时候发现光线变黑了,这个问题很久前就听别人说过但因为自己一直用不上场景跳转没有就没注意,今天顺势百度了一下
选择菜单window-》lighting 取消auto generate,点击generate lighting。不明觉厉
- Unity场景加载与进度条
- Unity异步加载场景与加载进度条
- UNITY之进度条加载场景
- <Unity3D专区>Unity实现加载场景进度条
- (转)Unity实现加载场景进度条
- 【Unity】场景异步加载的进度条制作
- 【Unity】场景异步加载的进度条制作
- 【Unity】场景异步加载进度条的制作
- unity深入研究--之异步加载游戏场景与异步加载游戏资源进度条
- unity中异步加载游戏场景与异步加载游戏资源进度条
- [Unity]异步加载场景和流畅loading进度条制作
- 【Unity】加载Loading场景进度条slider平滑问题
- Unity3d场景加载进度条
- Unity3d_UGUI加载场景进度条
- 场景进度条加载
- 场景加载进度条
- 异步加载游戏场景与异步加载游戏资源进度条
- Unity加载进度条
- 二分贪心总结
- 4864: [BeiJing 2017 Wc]神秘物质
- ARM 架构和X86架构
- 刘轩-不要让我们的身体骗了我们
- git-osc-android客户端之源码分析1
- Unity场景加载与进度条
- ActiveMQ(二):ActiveMQ的简单入门
- Web开发常用的代码
- java中hashCode的作用。
- 5月22日实训总结
- 10013---Dubbo入门
- usaco 2.4
- 学习springmvc的第五天(建立第一个springmvc项目:本次学习用的是4.0.0的jar包)
- oracle union all