Unity——两种进度条的制作

本文介绍了如何在Unity3D中创建线状和饼状的进度条来显示场景加载进度。通过使用Slider组件和Image组件,结合AsyncOperation进行异步加载,动态更新进度条的值。当加载达到一定比例时,显示‘加载完成’的信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、进度条-线状

Step1:创建Slider和Text,随便摆一下

 Step2:写脚本

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

public class LineLoad : MonoBehaviour
{
    //进度显示
    public Text text;
    //进度条
    public Slider progressSlider;

    private void Start()
    {
        StartCoroutine(LoadScene());
    }
    IEnumerator LoadScene()
    {
        AsyncOperation operation = SceneManager.LoadSceneAsync("ExcelScene");

        while (!operation.isDone)
        {
            progressSlider.value = operation.progress;

            text.text = operation.progress * 100 + "%";

            if (operation.progress >= 0.9f)//如果进度条已经到达90%
            {
                progressSlider.value = 1; //那就让进度条的值编变成1
                text.text = "加载完成!";
            }
            yield return null;
        }
    }
}

Step3:把场景加载到BuildSetting中

Done!

二、进度条-饼状

Step1:找到类似圆环的图片,做成Image,再加一个Text

 Step2:把Image的类型改成Filled类型,起始点Origin改成Top,Clockwise改为false

              fillAmount改为0

 Step3:写脚本

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

public class CircleLoad : MonoBehaviour
{
    public Image m_Image;
    public Text m_Text;

    private void Start()
    {
        m_Image.fillAmount = 0;

        StartCoroutine(LoadSceneCircle());
    }

    IEnumerator LoadSceneCircle()
    {
        AsyncOperation operation = SceneManager.LoadSceneAsync("ExcelScene");

        while (!operation.isDone)
        {
            m_Image.fillAmount = operation.progress / 100f ;

            m_Text.text = operation.progress * 100 + "%";

            if (operation.progress >= 0.9f)//如果进度条已经到达90%
            {
                m_Image.fillAmount = 1; //那就让进度条的值编变成1
                m_Text.text = "加载完成!";
            }
            yield return null;
        }
    }
}

这里和上面不一样的地方是,这里主要用到了fillAmout属性,而进度条就只需要Slider的Process属性即可

怎么样,是不很简单?

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Laker404

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值