Unity 简单的进度条实现
2021-04-11 11:29
标签:ring inf vat else 加载 update nbsp int string 制作进度条所需的资源: 用以载入进度条显示的场景 进度条背景以及进度条本身(颜色区别) 展示百分制进度情况的Text文本 需要载入的场景(这里使用的是自带场景) 载入时的场景布局:要将 Load 的 Image Type 修改为 Filled,Fill Method 修改为 Horizontal 具体代码如下: 实际载入效果: *** | 以上内容仅为学习参考、学习笔记使用 | *** Unity 简单的进度条实现 标签:ring inf vat else 加载 update nbsp int string 原文地址:https://www.cnblogs.com/ChenZiRong1999/p/13358797.html 1 using System.Collections;
2 using UnityEngine;
3 using UnityEngine.SceneManagement;
4 using UnityEngine.UI;
5
6 public class Slider : MonoBehaviour
7 {
8 private AsyncOperation aync;
9 public Image load; // 进度条的图片
10 private int culload = 0; // 已加载的进度
11 public Text loadtext; // 百分制显示进度
12
13 void Start()
14 {
15 StartCoroutine("LoadScence");
16 }
17
18 // 定义一个迭代器,每一帧返回一次当前的载入进度,同时关闭自动的场景跳转
19 // 因为LoadScenceAsync每帧加载一部分游戏资源,每次返回一个有跨越幅度的progress进度值
20 // 当游戏资源加载完毕后,LoadScenceAsync会自动跳转场景,所以并不会显示进度条达到了100%
21 // 关闭自动场景跳转后,LoadSceneAsync只能加载90%的场景资源,剩下的10%场景资源要在开启自动场景跳转后才加载
22 IEnumerator LoadScence()
23 {
24 aync = SceneManager.LoadSceneAsync("SampleScene");//SkillCD为要跳转的场景
25 aync.allowSceneActivation = false;
26 yield return aync;
27 }
28
29 void Update()
30 {
31 // 判断是否有场景正在加载
32 if (aync == null)
33 {
34 return;
35 }
36 int progrssvalue = 0;
37 // 当场景加载进度在90%以下时,将数值以整数百分制呈现,当资源加载到90%时就将百分制进度设置为100,
38 if (aync.progress 0.9f)
39 {
40 progrssvalue = (int)aync.progress * 100;
41 }
42 else
43 {
44 progrssvalue = 100;
45 }
46 // 每帧对进度条的图片和Text百分制数据进行更改,为了实现数字的累加而不是跨越
47 if (culload progrssvalue)
48 {
49 culload++;
50 load.fillAmount = culload / 100f;
51 loadtext.text = culload.ToString() + "%";
52 }
53 // 一旦进度到达100时,开启自动场景跳转,LoadSceneAsync会加载完剩下的10%的场景资源
54 if (culload == 100)
55 {
56 aync.allowSceneActivation = true;
57 }
58 }
59 }
下一篇:【百面】03_经典算法