当前位置:   article > 正文

Unity制作场景加载进度条(异步场景加载)_unity场景加载进度条

unity场景加载进度条

一、创建加载UI

  1. 新建Panel,颜色调成深灰色,不透明度255

  2. Panel下新建Slider,调整Slider;Panel下新建Text,显示进度条百分比

  3. 新建empty GameObject,命名为LoadManagerGameObject

  4. 新建脚本LoadManager.cs,将脚本拖拽放到LoadManagerGameObject上,
    在这里插入图片描述

  5. 将Panel的enabled取消勾选
    在这里插入图片描述

  6. 新建Button,命名为下一关;OnClick()点击+,将Hierarchy中的LoadManagerGameObject拖拽到Object上,函数选择LoadNextLevel()
    在这里插入图片描述
    在这里插入图片描述

  7. File-Build Settings,将现在的场景和要加载的场景拖拽到窗口中
    在这里插入图片描述

  8. LoadManager.cs

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

public class LoadManager : MonoBehaviour
{
    public GameObject loadScreen;
    public Slider slider;
    public Text text;

    public void LoadNextLevel()
    {
        StartCoroutine(LoadLevel());//开启协程
    }

    IEnumerator LoadLevel()
    {
        loadScreen.SetActive(true);//可以加载场景
        AsyncOperation operation = SceneManager.LoadSceneAsync(SceneManager.GetActiveScene().buildIndex + 1);

        operation.allowSceneActivation = false;//不允许场景自动跳转
        while(!operation.isDone)//场景加载没有完成时
        {
            slider.value = operation.progress;//slider的值=加载的进度值
            text.text = operation.progress * 100 + "%";

            if (operation.progress >= 0.9F)
            {
                slider.value = 1.0f;
                text.text = "100%";
                operation.allowSceneActivation = true;//允许场景自动跳转
            }

            yield return null;//跳出协程
        }
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

二级目录

三级目录

AsyncOperation
LoadManager

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/102646?site
推荐阅读
相关标签
  

闽ICP备14008679号