前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实现圆形进度条(Unity3D)

实现圆形进度条(Unity3D)

作者头像
恬静的小魔龙
发布2022-08-07 09:33:28
8020
发布2022-08-07 09:33:28
举报
文章被收录于专栏:Unity3DUnity3D

一、前言

今天分享一个制作圆形进度条的方法,原教程比较繁琐,这里给精简一下,更适合于新手

先看下效果吧

在这里插入图片描述
在这里插入图片描述

二、原文链接

原文出处:CSDN 原文链接:https://blog.csdn.net/tab_space/article/details/51775163 原文作者:tab_space

三、正文

步骤:

1、先制作素材

准备一张圆形的图片,中间掏空,保存为png格式

在这里插入图片描述
在这里插入图片描述

2、设置属性

新建一个image

在这里插入图片描述
在这里插入图片描述

将图片拖进去

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Image Type改为Filled

在这里插入图片描述
在这里插入图片描述

设置一下 Fill Method ->Radial 360 Fill Origin ->Top Fill Amount-> 1 Clockwise ->False

新建一个text

在这里插入图片描述
在这里插入图片描述

位置拖到图片中间

在这里插入图片描述
在这里插入图片描述

OK 前期工作都准备好了 只需要更改图片的 Fill Amount值就可以实现圆形进度条,有兴趣的同学 可以先拖一下看看效果

3、代码控制

新建脚本RingProcess.cs

代码语言:javascript
复制
using UnityEngine;
using UnityEngine.UI;

public class RingProcess : MonoBehaviour
{
    //进度条速度
    public float speed;
    //一个图片一个文字
    public Transform m_Image;
    public Transform m_Text;
    //进度控制
    public int targetProcess = 100;
    private float currentAmout = 0;

    void Update()
    {
        if (currentAmout < targetProcess)
        {
            currentAmout += speed;
            if (currentAmout > targetProcess)
                currentAmout = targetProcess;
            m_Text.GetComponent<Text>().text = ((int)currentAmout).ToString() + "%";
            m_Image.GetComponent<Image>().fillAmount = currentAmout / 100.0f;
        }
    }
}

4、设置参数

将脚本拖到任意物体上面

在这里插入图片描述
在这里插入图片描述

设置参数

在这里插入图片描述
在这里插入图片描述

OK ,看看效果吧

在这里插入图片描述
在这里插入图片描述

四、项目下载

链接:https://pan.baidu.com/s/1_POXdJKZFBa16jJiY5R7zQ 提取码:h2vp

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、原文链接
  • 三、正文
    • 1、先制作素材
      • 2、设置属性
        • 3、代码控制
          • 4、设置参数
          • 四、项目下载
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档