加载界面读条

本文介绍了一个使用Unity实现的游戏场景加载示例。该示例利用了Unity提供的SceneManager进行后台加载,并通过UI元素显示加载进度。文章详细展示了如何通过C#脚本控制场景加载过程,并同步更新UI组件来反映当前的加载状态。

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

using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
 
public class LogingScene : MonoBehaviour
{
    //加载条slider
    public Slider logingSlider;
    //加载到多少的文本
    public Text progressText;
    //序列帧图片
    public Image frameImage;
 
    private AsyncOperation async = null;
 
    private int currentProgress = 0;
 
    void Start()
    {
        StartCoroutine(LoadingScene());
    }
 
    private IEnumerator LoadingScene()
    {
        async = SceneManager.LoadSceneAsync("Main");
        async.allowSceneActivation = false;
        yield return async;
    }
 
    void Update()
    {
        int toProgress = 0;
 
        if (async.progress < 0.9f)
        {
            toProgress = Mathf.Clamp((int)async.progress * 100, 1, 100);
        }
        else
        {
            toProgress = 100;
        }
 
        if (currentProgress < toProgress)
        {
            currentProgress++;
        }
        else
        {
            async.allowSceneActivation = true;
        }
 
        SetSliderValue(currentProgress * 0.01f);
    }
 
    public void SetSliderValue(float value)
    {
        logingSlider.value = value;
        progressText.text = string.Format("{0}%", (int) (value*100));
        //创建一个空物体,把序列帧图片做子物体,父物体移动到开始位置,再移动子物体,看结束位置(此处950)
        frameImage.transform .localPosition =new Vector3(950*value ,0,0);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值