【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 类型的方法,可以添加多个方法。 

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

猜你喜欢

转载自blog.csdn.net/m0_37602827/article/details/125794601