zoukankan      html  css  js  c++  java
  • Unity 简单的进度条实现

    制作进度条所需的资源:

    用以载入进度条显示的场景

    进度条背景以及进度条本身(颜色区别)

    展示百分制进度情况的Text文本

    需要载入的场景(这里使用的是自带场景)

    载入时的场景布局:要将 Load 的 Image Type 修改为 Filled,Fill Method 修改为 Horizontal

    具体代码如下:

     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 }

    实际载入效果:

    *** |  以上内容仅为学习参考、学习笔记使用  | ***

  • 相关阅读:
    Ubuntu安装qBittorrent
    资深程序猿冒死揭开软件潜规则:无法维护的代码
    Oracle11g Active Data Guard搭建、管理
    Android 扁平化button
    Eclipse Android 代码自己主动提示功能
    Echoprint系列--编译
    一步步玩pcDuino3--mmc下的bootloader
    【Discuz】去除版权信息,标题栏与底部改动
    phoenixframe自己主动化測试平台对div弹出框(如弹出的div登陆框)的处理
    UVa
  • 原文地址:https://www.cnblogs.com/ChenZiRong1999/p/13358797.html
Copyright © 2011-2022 走看看