Unity3D——进度条Slider

在开发游戏过程中经常需要Slider来制作倒计时、积分之类的进度条。

1.由2张图构成

 命名为“baseImage”和“Image”。如图所示。

Unity3D——进度条Slider_第1张图片

选中“baseImage”对象,在“Inspector”中添加“Slider”属性,将“Image”拖入到“Fill Rect”中。如图所示。

Unity3D——进度条Slider_第2张图片

取消滑动条的可交互"Interactable“”,不然用户可以更改时间或经验值。

2.选中“Image”,设置其“Image”属性中的“Image Type”为“Filled”,根据自己需求,设置“Fill Method”和“Fill Origin”,滑动“Fill Amount”。

Unity3D——进度条Slider_第3张图片

效果图如下:

创建脚本“Slider”,用代码修改“Fill  Amount”属性。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Slider : MonoBehaviour {
    Image m_Image;
	void Start () 
    {
        m_Image = GetComponent();
        m_Image.fillAmount = 1f;
	}
	void Update () 
    {
        if (m_Image.fillAmount > 0)
        {
            m_Image.fillAmount -= 1 * Time.deltaTime;
        }
	}
}

将该脚本挂到“Image”对象上并设置其“custom”属性。

积分、经验值进度条一样的。

只需修改“Fill Method”和“Fill Origin”即可。Unity3D——进度条Slider_第4张图片

效果图如下:

还可以控制Slider的value来改变进度条

Slider baseImage = transform.Find("Canvas/baseImage").GetComponent();
baseImage.value = 0.77f;

 

你可能感兴趣的:(Unity3D——进度条Slider)