当前位置:   article > 正文

Unity 异步加载场景(简单上手版)_unity异步加载场景

unity异步加载场景

首先附上需要用到的代码:

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.SceneManagement;
  5. using UnityEngine.UI;
  6. public class MyLevelManager : MonoBehaviour
  7. {
  8. static string nextLevel;
  9. AsyncOperation async;
  10. public float tempprogress;
  11. public Slider slider;
  12. public Text text;
  13. // Start is called before the first frame update
  14. void Start()
  15. {
  16. tempprogress = 0;
  17. //这里我加载场景的名字叫Loading
  18. if (SceneManager.GetActiveScene().name == "Loading")
  19. {
  20. async = SceneManager.LoadSceneAsync(nextLevel);
  21. async.allowSceneActivation = false;
  22. }
  23. }
  24. public void LoadLoadingLevel(string nextLevelName)
  25. {
  26. nextLevel = nextLevelName;
  27. SceneManager.LoadScene("Loading");
  28. }
  29. // Update is called once per frame
  30. void Update()
  31. {
  32. if (text && slider)
  33. {
  34. //这里为了加载更加流畅对原加载条进行改进,变成伪进度条
  35. //可以对Time.deltaTime*num中的num数字进行调整,达到想要的加载速度
  36. tempprogress = Mathf.Lerp(tempprogress, async.progress, Time.deltaTime * 2);
  37. text.text = ((int)(tempprogress / 9 * 10 * 100)).ToString() + "%";
  38. slider.value = tempprogress / 9 * 10;
  39. if (tempprogress / 9 * 10 >= 0.995)
  40. {
  41. text.text = 100.ToString() + "%";
  42. slider.value = 1;
  43. async.allowSceneActivation = true;
  44. }
  45. }
  46. }
  47. }

下面就是脚本的使用方法:

首先在场景中要有个UI按钮Button,比如我这里的 开始游戏 (这里的按钮我加了背景图)

 然后在该Button的Inspector窗口中进行如下设置,红色箭头所指地方填上需要异步加载到的场景

 然后在Loading(Loading是我建的一个加载的场景名)场景中进行如下设置

然后再进行如下设置(这里我把脚本挂载到Canvas,当然挂在其他地方也可以)

红色箭头部分记得把Slider和Text拖进去

这样就给要加载的场景做好异步加载啦!

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号