【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 Bottom
- Min 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