redhat9i 发表于 2023-2-23 09:21

【Unity3D】UGUI之Slider

1 Slider属性面板


在 Hierarchy 窗口右键,选择 UI 列表里的 Slider 控件,即可创建 Slider 控件,选中创建的 Slider 控件,按键盘【T】键,可以调整 Slider 控件的大小和位置。

创建 Slider 控件时,系统会自动为其创建 3 个 Image 子控件和 2 个 Empty 控件,如下:


Background:Image 控件,滑动条最底层的背景

Fill Area:Empty 控件,用于限制圆圈左边的填充部分区域

Fill:Image 控件,圆圈左边区域的背景

Handle Slide Area:Empty 控件,用于限制圆圈的区域

Handle:Image 控件,圆圈的背景

Slider 控件的属性面板如下:

Direction:滑动条朝向,取值有:Left To Right、Right To Left、Bottom To Top、Top To BottomMin Value:滑动条取值最小值Max Value:滑动条取值最大值Whole Numbers:是否取整数Value:滑动条当前取值
2 Slider 注册事件


点击 OnValueChanged 下面的 “+” 号,可以为选择框添加响应事件,可以添加多个事件。

1)注册已有组件的方法

点击 OnValueChanged 下面的 “+” 号,将 Slider 下面的 Background 拖拽到 OnValueChanged 面板里,选择 GameObject.name,下方文本设置 "bg",如下:

拖动滑动条,Background 会重命名为 “bg”,如下:

2)注册脚本组件里面的方法

给 Slider 控件添加 SliderController 脚本组件如下:

SliderController.cs
using UnityEngine;using UnityEngine.UI;public class SliderController : MonoBehaviour {    public void OnSlide1() {      Debug.Log("Slide1");    }   public void OnSlide2(string msg) {      Debug.Log("Slide2, msg=" + msg);    }   public void OnSlide3(float value) {      Debug.Log("Slide3, value=" + value);    }}
注意:待注册的方法,最多只能提供 1 个参数, 当参数为 float 类型时,入参表示滑动条的数值(value)。

点击 OnValueChanged 下面的 “+” 号,将 SliderController 脚本组件拖拽到 OnValueChanged 面板里,选择 SliderController.OnSlide1 方法;再点击 OnValueChanged 下面的 “+” 号,将 SliderController 脚本组件拖拽到 OnValueChanged 面板里,选择 SliderController.OnSlide2 方法,其下方输入"xxxx";点击 OnValueChanged 下面的 “+” 号,将 SliderController 脚本组件拖拽到 OnValueChanged 面板里,选择 SliderController.OnSlide3 方法。如下:

拖动滑动条,打印日志如下:

3)代码里注册事件

给 Slider 控件添加 SliderController 脚本组件如下:

SliderController.cs
using UnityEngine;using UnityEngine.UI;public class SliderController : MonoBehaviour {    private void Start() {      Slider slider = GetComponent<Slider>();      slider.onValueChanged.AddListener(OnValueChanged);    }   public void OnValueChanged(float value) {      Debug.Log("OnValueChanged, value=" + value);    }}
注意:AddListener 方法里只能添加入参为 float 类型的方法,可以添加多个方法。

拖动滑动条,打印日志如下:

声明:本文转自【Unity3D】UGUI之Slider
页: [1]
查看完整版本: 【Unity3D】UGUI之Slider