Unity带进度条加载场景及场景变暗的解决方法
2018-09-07 11:20
676 查看
首先说加载场景显示进度条
简单的来说需要协程+Update
一直用UGUI,进度条就用Slider
别忘了引用
如果想在旁边显示个数字百分比,就再加个Text就好了
假设我们所在场景为old,要去往场景new,如何加载并显示进度呢
可以直接在old场景中做,也可以加一个中间场景专门显示加载进度
我们就加个中间场景吧,叫middle
而加载的进度条slder和百分比文字text就在此场景中建立
也就是说至少需要三个脚本
一个挂在old场景中,一个挂在middle场景中,还有一个脚本负责把场景new的名字从old场景中传递至middle场景
首先说传递场景名字的脚本
一句话
old场景中的脚本两个动作
1.负责把要打开场景的名字传给PassSceneName
2.打开middle场景
这样,在进入middle场景后,可以通过PassSceneName.SceneName读取到要加载的场景名
而作为加载场景,显然是自动加载,可以在Start方法中就执行异步加载
如上,slider的值直接等于异步加载的进度值就好了
而百分比文字则是进度x100再取整
在进度达到100%之前不允许自动切换场景,达到100%再允许
其实很简单
再说说加载场景,不亮的问题,也很简单
首先场景肯定用的是实时光设置
那么在lighting面板中
首先把Auto Generate前的勾取消
再点击 Generate Lighting按钮
与baked相同,也会在场景文件同级目录下生成一个同名的文件夹
里面有一个LightingData,一个ReflectionProbe
但与baked不同的是,这个不算是烘焙场景,过程非常快,这样,以
5b4
后再在程序运行时加载其场景,就不会进去场景变暗了
简单的来说需要协程+Update
一直用UGUI,进度条就用Slider
别忘了引用
using UnityEngine.UI;
public Slider slider;
如果想在旁边显示个数字百分比,就再加个Text就好了
public Text text;
假设我们所在场景为old,要去往场景new,如何加载并显示进度呢
可以直接在old场景中做,也可以加一个中间场景专门显示加载进度
我们就加个中间场景吧,叫middle
而加载的进度条slder和百分比文字text就在此场景中建立
也就是说至少需要三个脚本
一个挂在old场景中,一个挂在middle场景中,还有一个脚本负责把场景new的名字从old场景中传递至middle场景
首先说传递场景名字的脚本
一句话
public class PassSceneName { public static string SceneName; }
old场景中的脚本两个动作
1.负责把要打开场景的名字传给PassSceneName
2.打开middle场景
public void GotoNewScene() { PassSceneName.SceneName="new"; SceneManager.LoadScene("middle"); }
这样,在进入middle场景后,可以通过PassSceneName.SceneName读取到要加载的场景名
而作为加载场景,显然是自动加载,可以在Start方法中就执行异步加载
public Slider slider; public Text text; public float speed = 1.0f; private AsyncOperation op; private void Start() { StartCoroutine(loadScene()); } Ienumerator loadScene() { slider.value = 0f; op=SceneManager.LoadSceneAsync(PassSceneName.SceneName); op.allowSceneActivation = false; //加载完成不自动切换 yield return op; } private void Update() { if(op != null) { float val = op.progress; slider.value = op.progress; int persent=(int)(val * 100); text.text = persent + "%"; if(persent == 100) { op.allowSceneActivation = true; //允许加载完成后切换场景 } } }
如上,slider的值直接等于异步加载的进度值就好了
slider.value = op.progress;
而百分比文字则是进度x100再取整
在进度达到100%之前不允许自动切换场景,达到100%再允许
其实很简单
再说说加载场景,不亮的问题,也很简单
首先场景肯定用的是实时光设置
那么在lighting面板中
首先把Auto Generate前的勾取消
再点击 Generate Lighting按钮
与baked相同,也会在场景文件同级目录下生成一个同名的文件夹
里面有一个LightingData,一个ReflectionProbe
但与baked不同的是,这个不算是烘焙场景,过程非常快,这样,以
5b4
后再在程序运行时加载其场景,就不会进去场景变暗了
相关文章推荐
- Unity场景加载与进度条
- Unity 利用协同程序实现场景切换时加载进度的监控
- 【unity】异步加载游戏场景与异步加载游戏资源进度条
- Unity 使用 Application.LoadLevelAsync() 方法切换场景后场景变黑问题解决方法
- unity 场景加载和对象消失的几种方法
- Unity 编辑器环境下不能正确加载Android Assetbundle 中的 Shader 解决方法
- unity深入研究--之异步加载游戏场景与异步加载游戏资源进度条
- unity 异步加载场景并显示进度
- Unity:异步加载场景资源进度界面
- Unity5.0以上的版本切换场景的时候场景都会变暗的解决方法
- [Unity-24] Unity的四种加载场景的方法
- 【Unity】加载Loading场景进度条slider平滑问题
- Unity 编辑器环境下不能正确加载Android Assetbundle 中的 Shader 解决方法
- UNITY之进度条加载场景
- Unity 显示Loading(加载)进度 对于网上流行的方法进行更正
- (转)Unity实现加载场景进度条
- Unity5.5加载场景并显示进度条
- unity中异步加载游戏场景与异步加载游戏资源进度条
- unity异步加载场景获取进度实例[笔记]
- unity5.3新API使用进度条,异步加载场景的代码