UGUI交互组件Slider

news2024/11/17 14:26:41

一.Slider对象的结构

对象介绍
Slider附加Slider组件
Background背景
Fill Area填充范围
Fill填充对象
Handle Slider Area滑块移动范围
Handle滑块

二.Slider组件属性

属性说明
Fill Rect关联填充对象
Handle Rect关联滑块对象
Direction设置方向
Min Value最大取值
Max Value最小取值
Whole Numbers是否取整
Value当前取值

三.事件监听

3.1 可视化监听

3.2 代码监听

public class CSlider : MonoBehaviour
{
    private Slider _slider;
    void Start()
    {

        _slider = GameObject.Find("Slider").GetComponent<Slider>();
        _slider.onValueChanged.AddListener(delegate (float value)
        {
            sliderOnValueChanged(value);
        });
    }
    public void sliderOnValueChanged(float value)
    {
        Debug.Log("value: "+ value);
    }
}

四.填充内容占满背景

首先,我们进一步的了解默认的Slider对象,先将滑块隐藏,在最小值和最大值之间拖动Value

可以看到Value最小时,填充图片没有消失,Value最大时,填充范围没有覆盖背景图。

以下设置可以解决这个问题:

4.1.把Fill放到Slider下,Fill Area删了

4.2 将Fill的宽高设置为和父对象一致

4.3 把Fill的Image组件的ImageType属性设置为Filled,把Fill Method设置为Horizontal

将Background和Fill的图片设置后,改变Value的值,可以看到Value最小时,填充消失,Value最大时,覆盖背景

五.Slider的应用

总体来说Slider很常用,游戏中血条,进度条,设置百分比数值等地方都有应用。可按是否有交互进行分类,无交互的统称为进度条(包括血条,经验条等,肯定没有滑块);有交互的称为滑动条(可能有滑块)

5.1 进度条

某游戏的进度条UI

通过代码设置进度条UI的简单举例

public class CSlider : MonoBehaviour
{
    private Slider _slider;
    private TMP_Text _text1;
    private float time = 0;
    void Start()
    {
        _text1 = GameObject.Find("Slider1/Text1").GetComponent<TMP_Text>();
        _slider = GameObject.Find("Slider1").GetComponent<Slider>();
        _slider.minValue = 0;
        _slider.maxValue = 100;
        _slider.wholeNumbers = true;

        setSliderValue(20);
    }
    void Update()
    {
        time += Time.deltaTime;
        if(3 < time)
        {
            setSliderValue(50);
        }
        Debug.Log(time);
    }
    public void setSliderValue(float value)
    {
        _slider.value = value;
        _text1.SetText(value + "/" +  _slider.maxValue);
    }
}

运行效果

5.2 滑动条

某游戏滑动条UI

代码示例

public class CSlider : MonoBehaviour
{
    private Slider _slider;
    private TMP_Text _text1;
    private float time = 0;
    void Start()
    {
        _text1 = GameObject.Find("Slider1/Text1").GetComponent<TMP_Text>();
        _slider = GameObject.Find("Slider1").GetComponent<Slider>();
        _slider.minValue = 0;
        _slider.maxValue = 100;
        _slider.wholeNumbers = true;
        _slider.onValueChanged.AddListener(delegate (float value)
        {
             Debug.Log(value);
            _text1.SetText(value + "/" +  _slider.maxValue);
        });
        setSliderValue(20);
    }

    public void setSliderValue(float value)
    {
        _slider.value = value;
        _text1.SetText(value + "/" +  _slider.maxValue);
    }
}

运行效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1082498.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python高效实现网站数据挖掘

在当今互联网时代&#xff0c;SEO对于网站的成功至关重要。而Python爬虫作为一种强大的工具&#xff0c;为网站SEO带来了革命性的改变。通过利用Python爬虫&#xff0c;我们可以高效地实现网站数据挖掘和关键词分析&#xff0c;从而优化网站的SEO策略。本文将为您详细介绍如何利…

用例图 UML从入门到放弃系列之三

1.说明 关于用例图&#xff0c;这篇文章我将直接照搬罗伯特.C.马丁老爷子在《敏捷开发》一书种的第17章&#xff0c;并配上自己的理解&#xff0c;因为这一章写的实在是太精彩了&#xff0c;希望能够分享给大家&#xff0c;共勉。以下是老爷子的原文中文翻译以及豆芽的个人解读…

迁移学习--预训练微调

目录 1、迁移学习作用 2、迁移学习的途径 3、相关的领域 4、在计算机视觉中的应用 5、迁移学习的办法 预训练模型 微调 6、总结 1、迁移学习作用 定义&#xff1a;能在一个任务学习一个模型&#xff0c;然后用来解决相关的别的任务&#xff0c;这样我们在一个地方花…

鸿运主动安全云平台任意文件下载漏洞

一、漏洞描述 深圳市强鸿电子有限公司鸿运主动安全云平台存在任意文件下载漏洞&#xff0c;攻击者可通过此漏洞下载敏感文件信息&#xff0c;获取数据库账号密码&#xff0c;从而为下一步攻击做准备。 二、网络空间搜索引擎查询 fofa查询 body"./open/webApi.html"…

排序算法-插入排序法(InsertSort)

排序算法-插入排序法&#xff08;InsertSort&#xff09; 1、说明 插入排序法是将数组中的元素逐一与已排序好的数据进行比较&#xff0c;先将前两个元素排序好&#xff0c;再将第三个元素插入适当的位置&#xff0c;也就是说这三个元素仍然是已排序好的&#xff0c;接着将第…

bootz启动 Linux内核过程总结

一. bootz启动Linux uboot 启动 Linux内核使用bootz命令。当然还有其它的启动命令&#xff0c;例如&#xff0c;bootm命令等等。 前面几篇文章分析 bootz命令启动 Linux内核的过程中涉及的几个重要函数。 bootz启动 Linux内核过程中涉及的全局变量images_凌肖战的博客-CSDN博…

3d tiles规范boundingVolume属性学习

3d tiles的瓦片&#xff08;Tiles&#xff09;包含一些属性&#xff0c;其中第一项是boundingVolume&#xff1b;下面学习boundingVolume&#xff1b; boundingVolume&#xff0c;这个翻译为边界范围框&#xff0c;如果直译为边界体积可能有问题&#xff0c;其实就是包围盒的意…

Matlab提取colormap

文章目录 简介Matlab代码 简介 使用Maltab依据截取的图片信息&#xff0c;提取colormap&#xff0c;供保存使用 Matlab代码 提取函数 function colormap_outExtract_Colormap(inputfig, colormapsize)% Creat a colormap array from the input figure. % The figure is a c…

虹科科技 | 探索CAN通信世界:PCAN-Explorer 6软件的功能与应用

CAN&#xff08;Controller Area Network&#xff09;总线是一种广泛应用于汽车和工业领域的通信协议&#xff0c;用于实时数据传输和设备之间的通信。而虹科的PCAN-Explorer 6软件是一款功能强大的CAN总线分析工具&#xff0c;为开发人员提供了丰富的功能和灵活性。本文将重点…

刷题用到的非常有用的函数c++(持续更新)

阅读导航 字符串处理类一、stoi()&#xff08;将字符串转换为整数类型&#xff09;二、to_string()&#xff08;将整数类型转换为字符串类型&#xff09;三、stringstream函数&#xff08;将一个字符串按照指定的分隔符进行分词&#xff09; 字符串处理类 一、stoi()&#xff…

ChatGPT AIGC 高效办公自动化案例

根据业务员姓名查找对应月份的科目成绩。 我们让ChatGPT AIGC来完成Excel公式。 Prompt:有一个表格A列为姓名,B列为语文,C列为数学,请根据J2单元格的姓名 ,查找出对应的数学成绩,请写出函数来完成 将生成的vlookup函数公式=VLOOKUP(J2, A:C, 3, FALSE)复制到表格中进行验…

[开源]基于流程编排的自动化测试工具,插件驱动,测试无限可能

一、开源项目简介 流程编排&#xff0c;插件驱动&#xff0c;测试无限可能 一款基于流程编排的自动化测试工具 二、开源协议 使用Apache-2.0开源协议 三、界面展示 四、功能概述 在软件开发旅程中&#xff0c;测试流程的管理和执行常常是复杂且耗时的挑战。传统测试工具主…

c++ 类的特殊成员函数:移动构造函数(五)

1. 简介 移动构造函数是C11中的新特性&#xff0c;它允许对象通过移动而不是复制来传递和初始化。移动构造函数通常用于提高性能&#xff0c;因为它避免了不必要的复制操作&#xff0c;特别是当处理大型对象或使用动态内存分配时。 2. 来源 当拷贝构造函数出现函数返回值 &a…

kafka广播消费组停机后未删除优化

背景 kafka广播消息的时候为了保证groupId不重复&#xff0c;再创建的时间采用前缀时间戳的形式&#xff0c;这样可以保证每次启动的时候是创建的新的&#xff0c;但是 会出现一个问题&#xff1a;就是每次停机或者重启都会新建一个应用实例&#xff0c;关闭应用后并不会删除…

如何调整 Kubernetes StatefulSet 卷的大小

Kubernetes StatefulSet用于在集群内部署有状态应用程序。StatefulSet 中的每个 Pod 都可以访问即使在重新调度后仍坚持使用的本地持久卷。这使得 Pod 能够维护与其集合中的邻居不同的单独状态。 不幸的是,这些卷有一个很大的限制:Kubernetes 没有提供从 StatefulSet 对象调整…

排序算法-冒泡排序法(BubbleSort)

排序算法-冒泡排序法&#xff08;BubbleSort&#xff09; 1、说明 冒泡排序法又称为交换排序法&#xff0c;是从观察水中的气泡变化构思而成的&#xff0c;原理是从第一个元素开始&#xff0c;比较相邻元素的大小&#xff0c;若大小顺序有误&#xff0c;则对调后再进行下一个…

排序算法-选择排序法(SelectionSort)

排序算法-选择排序法&#xff08;SelectionSort&#xff09; 1、说明 选择排序法也是枚举法的应用&#xff0c;就是反复从未排序的数列中取出最小的元素&#xff0c;加入另一个数列中&#xff0c;最后的结果即为已排序的数列。选择排序法可使用两种方式排序&#xff0c;即在所…

基于nodejs+vue驾校预约管理系统

通过科技手段提高自身的优势&#xff1b;对于驾校预约管理系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了驾校预约管理系统&#xff0c; 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;驾校预约管理系统&am…

【Rust】包和模块,文档注释,Rust格式化输出

文章目录 包和模块包 CrateRust 的标准目录结构 模块 Module用路径引用模块使用super引用模块使用self引用模块结构体和枚举的可见性 使用 use 引入模块及受限可见性基本引入方式绝对路径引入模块相对路径引入模块中的函数 避免同名引用 注释和文档文档注释包和模块级别的注释注…

conda: error: argument COMMAND: invalid choice: ‘activate‘

参考:https://github.com/conda/conda/issues/13022 输入后重启terminal即可