unity带进度条加载场景及场变黑的解决方法(代码片段)

author author     2022-12-29     438

关键词:

首先说加载场景显示进度条

简单的来说需要协程+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不同的是,这个不算是烘焙场景,过程非常快,这样,以后再在程序运行时加载其场景,就不会进去场景变暗了

unity_加载页面及进度条(代码片段)

...现)新建一个加载页面场景创建一个滑动条用来表示进度条 再创建一个文本用来显示进度百分比 位置随便摆一下创建一个空对象在空对象上新建挂载脚本 修改代码: 查看详情

gameframework框架(unity3d)使用笔记(八)实现场景加载进度条(代码片段)

...戏在转换关卡这种时候都会有个加载界面,显示加载进度。这样玩家可以对啥时候能加载好有个心理预估(判断要不要因为加载太久浪费时间不如卸载游戏(开个玩笑))。    一般加载场景显示进度条的方... 查看详情

手把手教会你unity场景切换进度条制作(代码片段)

30秒教会你Unity场景切换进度条首先问一个问题:为什么要用进度条,以及什么情况下才用进度条呢?一、创建游戏场景及搭建面板UI二、添加代码(1)加载完成后进入场景完整代码(2)加载完成需要... 查看详情

ngui的异步场景加载进度条(代码片段)

 1、直接创建三个场景,其中第二个场景是用来显示进度条加载的界面,进度条用UISlider,不会的看我前面的博文就可以了。2、这里提供两种方法,建议使用第一种,加载比较平缓方法一: usingSystem.Collections;usingSystem.Colle... 查看详情

如何在unity3d使用www加载场景并显示进度条

...level22.将图片素材放进工程文件中,分别作为关卡背景、进度条背景和进度条前景3.创建C#脚本,取名Life4.打开脚本,加入如图所示代码5.将脚本拖拽到摄像机上,将三张图片对号入座到图片变量中6.按播放键调试 查看详情

在unity3d里怎么做进度条

...的的场景均是”loadScene“;建loadScene场景,用于处理加载进度条。二、导入NGUI资源包,在Unity3D菜单栏中选中NGUI-Open-PrefabToolbar,在PrefabToolbar窗口中,选中Control-ColoredProgressBar拖拽至Hierarchy面板,修改名字为”Loading“。三、在Hier... 查看详情

如何在unity3d使用www加载场景并显示进度条

参考技术A异步加载场景,可以使用变量progress查看加载进度5.x:UnityEngine.SceneManagement.SceneManager.LoadSceneAsync("sceneName").progress;4.xApplication.LoadLevelAsync(1).progress;WWW通常使用在访问url时,www.progress可以查看加载进度 查看详情

unity3d中制作loading场景进度条所遇到的问题loadlevelasync,asyncoperation

...快。在加载主场景的时候一般会在Loading界面中显示一个进度条来告知玩家当前加载的进度。在Unity中可以通过调用Application.LoadLevelAsync函数来异步加载游戏场景,通 查看详情

unity简单的进度条实现(代码片段)

制作进度条所需的资源:用以载入进度条显示的场景进度条背景以及进度条本身(颜色区别)展示百分制进度情况的Text文本需要载入的场景(这里使用的是自带场景)载入时的场景布局:要将Load的ImageType修改为Filled,FillMethod修... 查看详情

切换场景灯光变黑问题解决

编辑器在当前场景时,它的灯光是已经渲染好了,但重新加载的时候灯光没有进行渲染解决方法如下:Window>>lighting>>Scene面板>>右下角build按钮前,取消勾选auto,这时候是没有烘焙灯光的情形,重新加载场景后不再... 查看详情

unity学习-------异步场景加载(asyncoperation)(代码片段)

...从这两个例子不难看出异步加载无非就是让玩家等待游戏进度条加载。二、异步场景加载的学习    这边就简单介绍如何使用这个方法。  1、首先准备两个场景,一个作为主界面,一个作为游戏跳转界面       2、... 查看详情

unity3d序列帧动画制作方法---实现加载进度条(代码片段)

产品中经常用到加载动图,一般情况呢,我们都会根据UI设计师所给的UI图进行制作,我这里就介绍两种做法,此篇博客只是记录我怎么做的,方便我后续用,也希望能帮到大家。第一种是让UI设计师给一张包含里所有序列帧的大... 查看详情

unity使用ugui实现王者荣耀ui界面加载页面(进度条)(代码片段)

...用UGUI实现王者荣耀UI界面(一)】加载页面(进度条)1.素材准备2.界面分析3.打开UnityHub创建项目4.开始搭建UI1.准备工作2.背景图片3.导入素材4.配置背景图片5.进度条显示UI搭建6.脚本编写7.演示5.打包结语【Unity使... 查看详情

unity使用ugui实现王者荣耀ui界面加载页面(进度条)(代码片段)

...用UGUI实现王者荣耀UI界面(一)】加载页面(进度条)1.素材准备2.界面分析3.打开UnityHub创建项目4.开始搭建UI1.准备工作2.背景图片3.导入素材4.配置背景图片5.进度条显示UI搭建6.脚本编写7.演示5.打包结语【Unity使... 查看详情

unity3d中一步加载时进度条怎么实现啊??要javascrip版的

...Log("Loadingcomplete");然后你可以在update中获取加载的进度,转化为百分比,更改scrollbar的值就好了参考技术A可以考虑搜索下异步加载scene的方法追问找了但是都是cs版的没怎看明白能提供一个js版的吗?? 查看详情

unity程序协同问题,传送时屏幕变黑变亮的解决,常规操作的行为集合

...另外一段不相干但是却对功能上有需求的程序,比如进行场景传送,在传送点处,点击I键,屏幕慢慢变黑,场景传送到另外一个场景,场景又慢慢变亮。这里首先涉及两个物体,一个是传送触发器物体,点击I键,过一段时间后... 查看详情

unity怎么知道一个场景是不是加载完成

...加载方式,不仅不需要BuildSettings-AddCurrent处理加载场景,进度条的显示也更加容易,但是使用这种方式,需要先把场景打包成unity3d(查看详情)或者assetbundle(查看详情)文件。  1、先把测试场景搭建好,  2、然后添加一个C#脚... 查看详情

css3彩色进度条加载动画带进度百分比

在线演示       本地下载 查看详情