Unity3d中UGUI组件精简复盘Slider组件

Posted ProMer_Wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3d中UGUI组件精简复盘Slider组件相关的知识,希望对你有一定的参考价值。

上一节,我们简单概括了Unity3D编辑器中Toggle组件的简要介绍。具体详情链接为:Unity3d中UGUI组件精简复盘(十)Toggle组件

话不多说,我们直接进入正题~ 今天我们简要概括复盘的组件便是Slider组件啦~

是的没错,Slider组件也是继承于Selectable基类的,所以在属性的注解上也会有Selectable基类中的属性。这里就不重复了直接上链接,想要了解Selectable基类通用的属性注解的请自行跳转自Unity3d中UGUI组件精简复盘(八)Selectable基类进行查阅哈,如果有的小伙伴不知道为什么这么说继承于Selectable基类,可到VS环境下定义出Slider类名,选中类名按F12键,即可得知。

Slider组件

Slider继承于Selectable

子物体:

Background: 背景框

FillArea: 填充范围

Fill: 填充图片

Handle Slide Area: 滑动范围

Handle: 滑动块图片

属性:
File Rect: Fill 的Transform

Handle Rect: Handle的Transform

Direction: Left To Right从左到右,Right To Left从右到左,Bottom To Top 从下到上,Top To Bottom 从上到下

Min Value: 最小值

Max Value: 最大值

Whole Numbers: 是否为整数,勾选时值为整数,不勾选时为浮点数

Value: 适用于值的范围不为0~1的情况下进行控制

OnValueChanged(Boolean): 类似于Button里面的一个Onclick事件绑定。我们可以通过手动设置来进行绑定,当然我们也一样可以通过手写代码控制:

例如:TestSlider.cs

using UnityEngine.UI;

public class TestSlider : MonoBehaviour 
    void Start()
    
        GetComponent<Slider>().onValueChanged.AddListener((value) => Debug.Log(value));
    

**应用:**可以用于做系统音量或者系统亮度

例子1:进度条的简易实现

using UnityEngine.UI;
public class SliderText : MonoBehaviour 
	void Start () 
        StartCoroutine(valueChange());
	

    private IEnumerator valueChange()
    
        Slider slider = GetComponent<Slider>();
        float process = 0;

        while(process <1)
        
            process += 0.1f;
          
            yield return new WaitUntil(()=>
            
                //Mathf.SmoothSetp在最小值到最大值之间进行一个平滑的变化
                  slider.value = Mathf.SmoothStep(slider.value, process, 0.5f);
                return process - slider.value <= 0.01f;
            );

        
    

联系工作实际:
第一: 在工作中通常避免不了进度条的问题,而博主在工作中就遇到过一个坑,那就是由于Canvas里面的渲染模式的问题,导致原本不应该颜色渐变的进度条变成了颜色渐变的进度条,画了一大部分时间去查找原因,起初以为是美术出的图就是渐变色的图,后来发现并不是,是由于自己在拼接UI的时候,自己新建的Canvas属性与原属性不一致导致的,这一踩坑点。

第二:在工作实际中有这么一种情况,需求中出现了一种圆形的类似进度条的填充需求。看似是进度条实则不是进度条,而是通过修改Image里的填充模式从而实现的。这是踩坑点二;

第三:无疑就是Slider里的填充区域的问题,这个跟自己的熟练度有关,建议多去了解Slider里面的子物体的作用。

如果博客博友对这个章节有更多的内容想要了解的,可以评论哈,等这一个章节结束后,我会根据评论反馈以及自己的能力,将评论中反馈的内容在下一个计划中去制作出对应的内容的哈~

作者:ProMer_Wang

链接:https://blog.csdn.net/qq_43801020/article/details/117611968

本文为ProMer_Wang的原创文章,著作权归作者所有,转载请注明原文出处,欢迎转载!

以上是关于Unity3d中UGUI组件精简复盘Slider组件的主要内容,如果未能解决你的问题,请参考以下文章

Unity3d中UGUI组件精简复盘Scrollbar组件

Unity3d中UGUI组件精简复盘Scrollbar组件

Unity3d中UGUI组件精简复盘(十三)ScrollView组件

Unity3d中UGUI组件精简复盘(十四)Dropdown组件

Unity3d中UGUI组件精简复盘(十五)InputField组件

Unity3d中UGUI组件精简复盘(十六)三大 Layout Group组件