Unity制作圆环进度条加载场景资源

第一步:场景内UI圆环的搭建

新建一张Panel作为背景图,在Panel下新建一张Image命名为RoundImage作为外圆环,在外圆环下新建一张image命名为RoundLoading作为内圆环,用来显示进度的,新建两个Text文本,一个作为文字说明,一个作为进度值显示用。调整每个图的位置大小。大概如下图:
在这里插入图片描述
第二步:关键的地方:Image的设置

外圆环和内圆环必须是大小一致、有颜色差的图片。
RoundImage默认设置就好了,需要注意的是将RoundLoading属性设置为如下图:
在这里插入图片描述
第三步:代码实现进度条的加载

    [SerializeField] private Image LoadingImage;//
    [SerializeField] private Text LoadingText;
    private bool isLoading=false;
    private AsyncOperation asyn;
    private void Start()
    {
        StartCoroutine(LoadScene());
    }
    void Update()
    {
        if (isLoading&&LoadingImage!=null&&LoadingText!=null&&LoadingImage.fillAmount<1)
        {
            LoadingImage.fillAmount += Time.deltaTime * 0.05f * (asyn.isDone ? 10 : 1);
            LoadingText.text = string.Format("{0:P0}", LoadingImage.fillAmount);//对数值进行百分比格式化
        }
        else if (LoadingImage.fillAmount>=1)
        {
            asyn.allowSceneActivation = true;
            print("加载完成");
        }
    }
    IEnumerator LoadScene()
    {
        asyn = SceneManager.LoadSceneAsync("New");
        asyn.allowSceneActivation = false;
        yield return asyn;
    }
    private void OnGUI()
    {
        if (GUI.Button(new Rect (200,200,100,100),"加载环形进度条"))
        {
            isLoading = true;
        }
    }

实现的效果
初始:在这里插入图片描述
加载:
在这里插入图片描述
加载完成跳转场景:
在这里插入图片描述
这里是为了方便测试用,所以使用了GUI的按钮形式开启加载进度条,加载一个简单的场景,实际使用当中可以用来预加载资源用,写一个状态机轮询加载资源,将代码中的三目运算符改为到达相应状态时将加载速度加快,则进度条加快完成加载,完成需求。

额外的知识点:
Image的显示类型:图片的排列类型 Simple (普通模式),Sliced (九宫格),Tiled (平铺),Filed (填充)
此处仅相似做一下Filed的笔记。

属性说明
Fill Method填充的方法:Horizontal水平方向、Vertical垂直方向、Radial90度、Radial180度、Radial360度
Fill Origin填充的起点:Top顶部、Bottom底部、Left左边、Right右边
Fill Amount填充的量:是从0.00到1.00的数值
Clockwise填充是否按顺时针方向,勾选是顺时针,不勾选为逆时针
Preserve Aspect图片等比缩放
Set Native Size设置图片以原始尺寸显示
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Unity中可以使用uGUI系统轻松地制作进度条。下面是一些简单的步骤: 1. 创建一个新的Canvas对象,它将包含进度条的所有元素。 2. 在Canvas上创建一个新的Image对象,用于表示进度条的填充。 3. 通过调整Image的宽度或高度属性设置进度条的初始值(例如,如果您希望进度条在50%处开始填充,则将其宽度设置为Canvas宽度的一半)。 4. 在Canvas上创建一个新的Text对象,用于显示进度条的百分比。 5. 创建一个C#脚本来控制进度条的行为。这个脚本应该包含一个公共方法,当进度条需要更新时调用。 6. 将脚本附加到Canvas对象上。 7. 在脚本的Update方法中更新进度条的显示,并更新Text对象以显示进度的百分比。 以下是一个简单的C#脚本示例,用于控制进度条的行为: ```csharp using UnityEngine; using UnityEngine.UI; public class ProgressBar : MonoBehaviour { public Image barFill; public Text percentageText; private float currentValue = 0f; private float targetValue = 1f; private float fillSpeed = 0.5f; void Update () { if (currentValue < targetValue) { currentValue += fillSpeed * Time.deltaTime; barFill.fillAmount = currentValue; percentageText.text = Mathf.RoundToInt(currentValue * 100) + "%"; } } public void SetTargetValue(float value) { targetValue = value; } } ``` 在这个示例中,我们使用Image对象控制进度条的填充,并使用Text对象显示进度的百分比。我们还定义了一个公共方法SetTargetValue,用于在外部控制进度条的目标值。在Update方法中,我们使用当前值和目标值之间的线性插值来更新进度条的显示,同时更新Text对象以显示当前进度的百分比。 您可以使用此脚本的示例代码在您的Unity项目中创建进度条

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

周周的Unity小屋

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

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

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

打赏作者

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

抵扣说明:

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

余额充值