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

TurtleZhang TurtleZhang     2022-10-29     144

关键词:

 

1、直接创建三个场景,其中第二个场景是用来显示进度条加载的界面,进度条用UISlider,不会的看我前面的博文就可以了。

2、这里提供两种方法,建议使用第一种,加载比较平缓

方法一:

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class LoadingPags : MonoBehaviour



    public UISlider progressBar;            //进度条的引用                 
    private string ScenceName="C";       //加载场景的名字
    private  float dtimer = 0;
    private  float target = 0;

    AsyncOperation op = null;

    private void Start()
    
        Debug.Log("进入异步");


        //op = SceneManager.LoadSceneAsync(ScenceName);          //进入loadScene方法
        //op.allowSceneActivation = false;

        progressBar.value = 0;                                      //弃用前将其进行初始化了
        StartCoroutine(ProcessLoading());
    


    private void Update()
    
        dtimer += Time.deltaTime;
        progressBar.value = Mathf.Lerp(progressBar.value, target, dtimer * 0.2f);          
        //乘以的数值用来控制加载的速度,当新场景比较小的时候可以使用较小的值,有一定的效果,当场景加载较大的时候就不建议这么使用了
        if(progressBar.value>=0.99f)
        
            progressBar.value = 1;                          //使其的值达到完整
            op.allowSceneActivation = true;             //为true 的时候才可以进行加载新的场景
        
       
    
    IEnumerator ProcessLoading()
    

        op = SceneManager.LoadSceneAsync(ScenceName);          //进入loadScene方法
        op.allowSceneActivation = false;

        while (true)                        //死循环,使其在场景没有加载完成时就不退出了
        
            target = op.progress;
            if(target>=0.9f)                //当场景加载了90%了
            
                target = 1;
                yield break;
            
            yield return 0;

        
    

 

 

 

第二种:

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class Loadign : MonoBehaviour 

    public UISlider uislider;
    private AsyncOperation asyn=null;

    public static string LoadingName;           //声明一个静态的字符串变量俩保存要加载的场景名称
    void Start ()
    
        if(uislider)
        
            //进度条丢失了
        
        StartCoroutine(Loading());
    
    
    // Update is called once per frame
    void Update ()
    

        uislider.value = asyn.progress;
        //Debug.Log(uislider.value);
        //if (uislider.value>=0.8)
        //
        //    uislider.value = 1;

        //    asyn.allowSceneActivation = true;
        //

    
    IEnumerator Loading()
    
        asyn = SceneManager.LoadSceneAsync(2);          //加载第三个尝尽
        asyn.allowSceneActivation = false;
        //uislider.value = asyn.progress;         //赋值
        yield return asyn;
    

    //封装好的静态函数
    public static void LoadNewScene(string value)
    
        LoadingName = value;
        SceneManager.LoadScene("Loadign");
    

 

在unity3d里怎么做进度条

...示。objProcessBar.GetComponent<UISlider>().value=acOp.progress;异步加载场景testScene2的速度直接决定了进度条的实际进展速度。五、加载场景loadScene一闪而过,迅速的就跳转到了场景testScene2。完全无法看到进度条进展的过程。上述代码... 查看详情

u3d异步加载场景以及进度条的显示

1、先建立两个场景 2、把两个场景在在buildsetting中添加两个建好的两个场景3、在第一个场景中建立一个button和slider组件4、代码处理usingUnityEngine;usingSystem.Collections;usingUnityEngine.UI;usingUnityEngine.SceneManagement;publicclassButtonTest:Mo 查看详情

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

首先说加载场景显示进度条简单的来说需要协程+Update一直用UGUI,进度条就用Slider别忘了引用usingUnityEngine.UI;publicSliderslider;如果想在旁边显示个数字百分比,就再加个Text就好了publicTexttext;假设我们所在场景为old,要去往场景new,... 查看详情

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

...显示进度条的方法搜搜就有了,就是利用Unity自带的异步加载函数SceneManager.LoadSceneAsync()加载场景,并且通过AsyncOperation跟踪加载进度,从而设置进度条之类的。    不过,在GameFramework框架下,加载场景的模... 查看详情

unity3d场景切换加载进度条实现(代码片段)

需要三个场景,场景A,场景B,场景C;场景A:一个按钮,点击加载场景B;场景B:从A切换到C过度场景,加载进度条;场景C:目标场景;创建OnProgress.cs脚本:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.Sc... 查看详情

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

首先,学习异步场景加载之前,先了解什么是异步场景加载。一、什么是异步场景加载    在目前市面上基本所有的游戏都使用了这个方法,举个例子            (绝地求生加载画面)         &#x... 查看详情

当片段视图加载是异步任务的一部分时,如何在片段加载之前显示进度条?

】当片段视图加载是异步任务的一部分时,如何在片段加载之前显示进度条?【英文标题】:Howtoshowprogressbarbeforefragmentloadingwhenfragmentviewloadingispartofasynctask?【发布时间】:2018-04-1621:50:48【问题描述】:我有一个片段来显示日历... 查看详情

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

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

unity异步加载关卡(代码片段)

Async异步加载一、异步加载是什么?二、使用异步加载1.SceneManager.LoadSceneAsync();2.UI显示加载进度3.设置为加载完成后,按下任一按键进入场景一、异步加载是什么?当加载的场景资源很大时,会需要一定时间,... 查看详情

wpfbackgroundword异步加载更新进度条示例(代码片段)

1<Windowx:Class="AsynchronousLoading.MainWindow"2xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"3xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"4xmlns:d="http://schemas.microsoft.com/expression/blend/2008"5xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2... 查看详情

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

...进度。在Unity中可以通过调用Application.LoadLevelAsync函数来异步加载游戏场景,通 查看详情

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

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

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

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

unity异步加载场景(代码片段)

...;这个过程会非常的耗时,会让玩家感受到卡顿。所以异步切换就是来解决该问题的。场景异步加载异步加载的两种方式1.异步加载第一种方式:通过事件回调函数异步加载异步加载场景的API:SceneManager.LoadSceneAsync(“... 查看详情

unity3d中制作异步loading进度条所遇到的问题

...进度。在Unity中能够通过调用Application.LoadLevelAsync函数来异步载入游戏场景,通 查看详情

easyui添加进度条(代码片段)

...度条添加进度条重点只有一个,如何合理安排进度刷新与异步调用逻辑,假如我们在javascript代码中通过ajax或者第三方框架dwr等对远程服务进行异步调用,实现进度条就需要做到以下三点:在异步刷新之前打开进度条异步刷新的... 查看详情

vue项目实战61添加页面加载进度条效果(代码片段)

...成了数据报表的开发,本篇我们学习如何为项目添加加载进度条的效果。一、进度条效果我们要实现的效果就是,当我们点击每一个菜单,加载相应的页面时,在页面顶部中间会有一个加载的蓝色条条,随着... 查看详情

javaswing圆形加载进度条(代码片段)

查看详情